---
Fuzzer filename: '/src/civetweb/fuzztest/fuzzmain.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    load_tls_dll
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17210
      functionLinenumberEnd: 17292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          193
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - dlclose
        - dlopen
        - dlsym
        - mg_snprintf
        - strcat
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17220,20'
          Dst:             dlopen
        - Src:             'src/civetweb.c:17221,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:17240,9'
          Dst:             dlsym
        - Src:             'src/civetweb.c:17256,6'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:17268,23'
          Dst:             strlen
        - Src:             'src/civetweb.c:17270,7'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:17278,8'
          Dst:             strcat
        - Src:             'src/civetweb.c:17287,9'
          Dst:             dlclose
    - functionName:    dlopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_snprintf
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3221
      functionLinenumberEnd: 3227
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_vsnprintf
      functionUses:    101
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3225,2'
          Dst:             mg_vsnprintf
    - functionName:    dlsym
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    68
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dlclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_vsnprintf
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3172
      functionLinenumberEnd: 3211
      functionDepth:   0
      returnType:      void
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          130
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - mg_cry_internal_wrap
        - vsnprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3189,11'
          Dst:             vsnprintf
        - Src:             'src/civetweb.c:3204,3'
          Dst:             mg_cry_internal_wrap
    - functionName:    vsnprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_cry_internal_wrap
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3561
      functionLinenumberEnd: 3571
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fake_connection
        - mg_cry_internal_impl
      functionUses:    135
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3566,24'
          Dst:             fake_connection
        - Src:             'src/civetweb.c:3566,3'
          Dst:             mg_cry_internal_impl
        - Src:             'src/civetweb.c:3568,3'
          Dst:             mg_cry_internal_impl
    - functionName:    fake_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3545
      functionLinenumberEnd: 3550
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_cry_internal_impl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3461
      functionLinenumberEnd: 3535
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          215
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - fflush
        - flockfile
        - fprintf
        - fputc
        - fputs
        - funlockfile
        - mg_fclose
        - mg_fopen
        - sockaddr_to_string
        - time
        - vsnprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3475,2'
          Dst:             vsnprintf
        - Src:             'src/civetweb.c:3486,3'
          Dst:             fputs
        - Src:             'src/civetweb.c:3497,8'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:3509,4'
          Dst:             flockfile
        - Src:             'src/civetweb.c:3510,16'
          Dst:             time
        - Src:             'src/civetweb.c:3512,4'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:3513,4'
          Dst:             fprintf
        - Src:             'src/civetweb.c:3519,5'
          Dst:             fprintf
        - Src:             'src/civetweb.c:3527,4'
          Dst:             fprintf
        - Src:             'src/civetweb.c:3528,4'
          Dst:             fputc
        - Src:             'src/civetweb.c:3529,4'
          Dst:             fflush
        - Src:             'src/civetweb.c:3530,4'
          Dst:             funlockfile
        - Src:             'src/civetweb.c:3531,10'
          Dst:             mg_fclose
    - functionName:    fputs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_fopen
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2991
      functionLinenumberEnd: 3053
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         21
      ICount:          137
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - fopen64
        - mg_path_suspicious
        - mg_stat
      functionUses:    18
      BranchProfiles:
        - Branch String:   'src/civetweb.c:3030,2'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:2999,6'
          Dst:             mg_path_suspicious
        - Src:             'src/civetweb.c:3005,10'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:3032,22'
          Dst:             fopen64
        - Src:             'src/civetweb.c:3035,22'
          Dst:             fopen64
        - Src:             'src/civetweb.c:3038,22'
          Dst:             fopen64
        - Src:             'src/civetweb.c:3047,11'
          Dst:             mg_stat
    - functionName:    flockfile
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    time
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sockaddr_to_string
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3367
      functionLinenumberEnd: 3409
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - getnameinfo
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3375,3'
          Dst:             getnameinfo
    - functionName:    fprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fputc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fflush
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    funlockfile
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_fclose
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3059
      functionLinenumberEnd: 3068
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          44
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
      functionUses:    26
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3063,10'
          Dst:             fclose
    - functionName:    fclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getnameinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_path_suspicious
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2944
      functionLinenumberEnd: 2977
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          39
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_stat
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5782
      functionLinenumberEnd: 5801
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          76
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mg_path_suspicious
        - stat64
      functionUses:    19
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:5789,6'
          Dst:             mg_path_suspicious
        - Src:             'src/civetweb.c:5793,11'
          Dst:             stat64
    - functionName:    fopen64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stat64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    produce_socket
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20224
      functionLinenumberEnd: 20265
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          125
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - mg_start_worker_thread
        - pthread_cond_signal
        - pthread_cond_wait
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20227,8'
          Dst:             pthread_mutex_lock
        - Src:             'src/civetweb.c:20240,9'
          Dst:             pthread_cond_wait
        - Src:             'src/civetweb.c:20259,8'
          Dst:             pthread_cond_signal
        - Src:             'src/civetweb.c:20260,8'
          Dst:             pthread_mutex_unlock
        - Src:             'src/civetweb.c:20262,8'
          Dst:             mg_start_worker_thread
    - functionName:    pthread_mutex_lock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_wait
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_signal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_unlock
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    9
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_start_worker_thread
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21156
      functionLinenumberEnd: 21194
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          135
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - mg_start_thread_with_id
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - worker_thread
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21163,8'
          Dst:             pthread_mutex_lock
        - Src:             'src/civetweb.c:21171,9'
          Dst:             pthread_mutex_unlock
        - Src:             'src/civetweb.c:21178,8'
          Dst:             pthread_mutex_unlock
        - Src:             'src/civetweb.c:21181,12'
          Dst:             mg_start_thread_with_id
        - Src:             'src/civetweb.c:21181,12'
          Dst:             worker_thread
        - Src:             'src/civetweb.c:21189,9'
          Dst:             pthread_mutex_lock
        - Src:             'src/civetweb.c:21191,9'
          Dst:             pthread_mutex_unlock
    - functionName:    worker_thread
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20529
      functionLinenumberEnd: 20540
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sigaction
        - worker_thread_run
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20536,2'
          Dst:             sigaction
        - Src:             'src/civetweb.c:20539,2'
          Dst:             worker_thread_run
    - functionName:    mg_start_thread_with_id
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5858
      functionLinenumberEnd: 5880
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_attr_destroy
        - pthread_attr_init
        - pthread_attr_setstacksize
        - pthread_create
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:5863,8'
          Dst:             pthread_attr_init
        - Src:             'src/civetweb.c:5872,8'
          Dst:             pthread_attr_setstacksize
        - Src:             'src/civetweb.c:5875,11'
          Dst:             pthread_create
        - Src:             'src/civetweb.c:5876,2'
          Dst:             pthread_attr_destroy
    - functionName:    pthread_attr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_setstacksize
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_attr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sigaction
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    worker_thread_run
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20271
      functionLinenumberEnd: 20516
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         42
      ICount:          442
      EdgeCount:       54
      CyclomaticComplexity: 14
      functionsReached:
        - close_connection
        - consume_socket
        - init_connection
        - mg_atomic_inc
        - mg_cry_internal_wrap
        - mg_free
        - mg_malloc
        - mg_set_thread_name
        - ntohs
        - process_new_connection
        - pthread_mutex_destroy
        - pthread_mutex_init
        - pthread_setspecific
        - sockaddr_to_string
        - ssl_get_client_cert_info
        - sslize
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20277,2'
          Dst:             mg_set_thread_name
        - Src:             'src/civetweb.c:20280,29'
          Dst:             mg_atomic_inc
        - Src:             'src/civetweb.c:20286,2'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:20302,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20311,22'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:20313,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20329,11'
          Dst:             pthread_mutex_init
        - Src:             'src/civetweb.c:20330,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20331,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20342,9'
          Dst:             consume_socket
        - Src:             'src/civetweb.c:20352,27'
          Dst:             time
        - Src:             'src/civetweb.c:20359,7'
          Dst:             ntohs
        - Src:             'src/civetweb.c:20362,7'
          Dst:             ntohs
        - Src:             'src/civetweb.c:20364,3'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:20368,3'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:20418,8'
          Dst:             sslize
        - Src:             'src/civetweb.c:20423,9'
          Dst:             ssl_get_client_cert_info
        - Src:             'src/civetweb.c:20443,6'
          Dst:             init_connection
        - Src:             'src/civetweb.c:20447,6'
          Dst:             process_new_connection
        - Src:             'src/civetweb.c:20452,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20453,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20454,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20455,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20468,5'
          Dst:             close_connection
        - Src:             'src/civetweb.c:20474,4'
          Dst:             init_connection
        - Src:             'src/civetweb.c:20478,4'
          Dst:             process_new_connection
        - Src:             'src/civetweb.c:20494,2'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:20498,2'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:20502,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20507,3'
          Dst:             mg_free
    - functionName:    mg_set_thread_name
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2853
      functionLinenumberEnd: 2895
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_snprintf
        - pthread_self
        - pthread_setname_np
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:2856,2'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:2885,27'
          Dst:             pthread_self
        - Src:             'src/civetweb.c:2885,8'
          Dst:             pthread_setname_np
    - functionName:    mg_atomic_inc
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1142
      functionLinenumberEnd: 1166
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_setspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_malloc
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1510
      functionLinenumberEnd: 1511
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    20
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_free
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1528
      functionLinenumberEnd: 1530
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          15
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    88
      BranchProfiles:  []
      Callsites:       []
    - functionName:    consume_socket
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20180
      functionLinenumberEnd: 20217
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          160
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - pthread_cond_signal
        - pthread_cond_wait
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20184,8'
          Dst:             pthread_mutex_lock
        - Src:             'src/civetweb.c:20194,3'
          Dst:             pthread_cond_wait
        - Src:             'src/civetweb.c:20212,8'
          Dst:             pthread_cond_signal
        - Src:             'src/civetweb.c:20215,8'
          Dst:             pthread_mutex_unlock
    - functionName:    ntohs
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sslize
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16937
      functionLinenumberEnd: 17070
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          474
      EdgeCount:       91
      CyclomaticComplexity: 26
      functionsReached:
        - __errno_location
        - atoi
        - mg_cry_internal_wrap
        - mg_lock_context
        - mg_poll
        - mg_strcasecmp
        - mg_unlock_context
        - refresh_trust
        - ssl_error
        - usleep
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16949,10'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:16952,19'
          Dst:             refresh_trust
        - Src:             'src/civetweb.c:16958,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:16960,2'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:16962,3'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:16962,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16970,3'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:16970,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16987,12'
          Dst:             atoi
        - Src:             'src/civetweb.c:17012,6'
          Dst:             usleep
        - Src:             'src/civetweb.c:17033,16'
          Dst:             mg_poll
        - Src:             'src/civetweb.c:17046,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:17046,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17051,5'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17051,5'
          Dst:             mg_cry_internal_wrap
    - functionName:    ssl_get_client_cert_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17112
      functionLinenumberEnd: 17181
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         24
      ICount:          245
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - hexdump2string
        - mg_free
        - mg_malloc
        - mg_strdup_ctx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17140,20'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:17144,26'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:17146,25'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:17155,36'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:17165,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:17168,8'
          Dst:             hexdump2string
        - Src:             'src/civetweb.c:17171,25'
          Dst:             mg_strdup_ctx
    - functionName:    init_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19866
      functionLinenumberEnd: 19895
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          100
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mg_set_user_connection_data
        - mg_strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19869,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:19881,2'
          Dst:             mg_set_user_connection_data
        - Src:             'src/civetweb.c:19892,4'
          Dst:             mg_set_user_connection_data
    - functionName:    process_new_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19905
      functionLinenumberEnd: 20090
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         91
      ICount:          520
      EdgeCount:       115
      CyclomaticComplexity: 26
      functionsReached:
        - close_connection
        - free_buffered_response_header_list
        - get_rel_url_at_current_server
        - get_request
        - get_uri_type
        - handle_request_stat_log
        - mg_free
        - mg_send_http_error
        - mg_snprintf
        - should_keep_alive
        - should_switch_to_protocol
        - strcmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'src/civetweb.c:19954,4'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:19931,8'
          Dst:             get_request
        - Src:             'src/civetweb.c:19937,5'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:19940,14'
          Dst:             strcmp
        - Src:             'src/civetweb.c:19941,17'
          Dst:             strcmp
        - Src:             'src/civetweb.c:19943,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19949,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:19953,15'
          Dst:             get_uri_type
        - Src:             'src/civetweb.c:19968,15'
          Dst:             get_rel_url_at_current_server
        - Src:             'src/civetweb.c:19977,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19982,5'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:19995,26'
          Dst:             should_switch_to_protocol
        - Src:             'src/civetweb.c:20016,5'
          Dst:             handle_request_stat_log
        - Src:             'src/civetweb.c:20027,3'
          Dst:             free_buffered_response_header_list
        - Src:             'src/civetweb.c:20030,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20043,19'
          Dst:             should_keep_alive
        - Src:             'src/civetweb.c:20084,2'
          Dst:             close_connection
    - functionName:    close_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18355
      functionLinenumberEnd: 18429
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         21
      ICount:          151
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - close_socket_gracefully
        - mg_lock_connection
        - mg_set_user_connection_data
        - mg_unlock_connection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18367,2'
          Dst:             mg_lock_connection
        - Src:             'src/civetweb.c:18382,2'
          Dst:             mg_set_user_connection_data
        - Src:             'src/civetweb.c:18412,3'
          Dst:             close_socket_gracefully
        - Src:             'src/civetweb.c:18424,2'
          Dst:             mg_unlock_connection
    - functionName:    pthread_mutex_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_lock_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13346
      functionLinenumberEnd: 13350
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pthread_mutex_lock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13348,9'
          Dst:             pthread_mutex_lock
    - functionName:    mg_set_user_connection_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3298
      functionLinenumberEnd: 3306
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         4
      ICount:          27
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close_socket_gracefully
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18231
      functionLinenumberEnd: 18349
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         24
      ICount:          155
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - __errno_location
        - atoi
        - close
        - getsockopt
        - mg_cry_internal_wrap
        - set_blocking_mode
        - setsockopt
        - shutdown
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18248,2'
          Dst:             set_blocking_mode
        - Src:             'src/civetweb.c:18251,2'
          Dst:             shutdown
        - Src:             'src/civetweb.c:18266,20'
          Dst:             atoi
        - Src:             'src/civetweb.c:18303,13'
          Dst:             getsockopt
        - Src:             'src/civetweb.c:18316,3'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:18316,3'
          Dst:             strerror
        - Src:             'src/civetweb.c:18316,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18330,7'
          Dst:             setsockopt
        - Src:             'src/civetweb.c:18336,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:18336,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:18336,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18347,2'
          Dst:             close
    - functionName:    mg_unlock_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13355
      functionLinenumberEnd: 13359
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13357,9'
          Dst:             pthread_mutex_unlock
    - functionName:    set_blocking_mode
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6020
      functionLinenumberEnd: 6030
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fcntl64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6021,14'
          Dst:             fcntl64
        - Src:             'src/civetweb.c:6026,6'
          Dst:             fcntl64
    - functionName:    shutdown
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atoi
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    __errno_location
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    65
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strerror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    46
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setsockopt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    close
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    37
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fcntl64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19159
      functionLinenumberEnd: 19245
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         26
      ICount:          194
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - get_header
        - get_message
        - mg_snprintf
        - mg_strcasecmp
        - parse_http_request
        - strtoll
        - switch_domain_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19165,7'
          Dst:             get_message
        - Src:             'src/civetweb.c:19169,6'
          Dst:             parse_http_request
        - Src:             'src/civetweb.c:19171,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19183,7'
          Dst:             switch_domain_context
        - Src:             'src/civetweb.c:19184,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19203,13'
          Dst:             get_header
        - Src:             'src/civetweb.c:19207,9'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:19208,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:19209,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19220,19'
          Dst:             get_header
        - Src:             'src/civetweb.c:19226,23'
          Dst:             strtoll
        - Src:             'src/civetweb.c:19228,4'
          Dst:             mg_snprintf
    - functionName:    mg_send_http_error
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4692
      functionLinenumberEnd: 4700
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_send_http_error_impl
      functionUses:    57
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4697,8'
          Dst:             mg_send_http_error_impl
    - functionName:    strcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    69
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_uri_type
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18895
      functionLinenumberEnd: 18972
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         57
      ICount:          319
      EdgeCount:       76
      CyclomaticComplexity: 21
      functionsReached:
        - is_valid_port
        - mg_strncasecmp
        - strchr
        - strtoul
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18948,7'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:18953,14'
          Dst:             strchr
        - Src:             'src/civetweb.c:18957,16'
          Dst:             strchr
        - Src:             'src/civetweb.c:18962,11'
          Dst:             strtoul
        - Src:             'src/civetweb.c:18963,48'
          Dst:             is_valid_port
    - functionName:    get_rel_url_at_current_server
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18978
      functionLinenumberEnd: 19077
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          308
      EdgeCount:       68
      CyclomaticComplexity: 20
      functionsReached:
        - is_valid_port
        - memcmp
        - mg_strcasecmp
        - mg_strncasecmp
        - ntohs
        - strchr
        - strlen
        - strtoul
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18990,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:18995,7'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:19001,14'
          Dst:             strchr
        - Src:             'src/civetweb.c:19005,16'
          Dst:             strchr
        - Src:             'src/civetweb.c:19010,12'
          Dst:             strtoul
        - Src:             'src/civetweb.c:19012,13'
          Dst:             is_valid_port
        - Src:             'src/civetweb.c:19029,6'
          Dst:             ntohs
        - Src:             'src/civetweb.c:19044,23'
          Dst:             strlen
        - Src:             'src/civetweb.c:19049,12'
          Dst:             memcmp
        - Src:             'src/civetweb.c:19066,11'
          Dst:             memcmp
    - functionName:    should_switch_to_protocol
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14258
      functionLinenumberEnd: 14307
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          100
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - get_req_headers
        - mg_get_header
        - mg_strcasestr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14271,28'
          Dst:             get_req_headers
        - Src:             'src/civetweb.c:14277,12'
          Dst:             mg_strcasestr
        - Src:             'src/civetweb.c:14285,15'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:14292,11'
          Dst:             mg_strcasestr
        - Src:             'src/civetweb.c:14301,11'
          Dst:             mg_strcasestr
    - functionName:    handle_request_stat_log
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6798
      functionLinenumberEnd: 6825
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       11
      CyclomaticComplexity: 3
      functionsReached:
        - handle_request
        - log_access
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6804,2'
          Dst:             handle_request
        - Src:             'src/civetweb.c:6824,2'
          Dst:             log_access
    - functionName:    free_buffered_response_header_list
      functionSourceFile: '/src/civetweb/src/response.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 18
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          79
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_free
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/response.inl:22,3'
          Dst:             mg_free
        - Src:             'src/response.inl:27,3'
          Dst:             mg_free
    - functionName:    should_keep_alive
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4059
      functionLinenumberEnd: 4093
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          98
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - get_http_version
        - header_has_option
        - mg_get_header
        - mg_strcasecmp
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4069,6'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:4075,11'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:4078,7'
          Dst:             header_has_option
        - Src:             'src/civetweb.c:4085,17'
          Dst:             get_http_version
        - Src:             'src/civetweb.c:4086,28'
          Dst:             strcmp
    - functionName:    mg_strcasecmp
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3107
      functionLinenumberEnd: 3114
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          56
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - lowercase
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3111,10'
          Dst:             lowercase
        - Src:             'src/civetweb.c:3111,28'
          Dst:             lowercase
    - functionName:    mg_get_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3930
      functionLinenumberEnd: 3946
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - get_header
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3936,10'
          Dst:             get_header
        - Src:             'src/civetweb.c:3941,10'
          Dst:             get_header
    - functionName:    header_has_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4031
      functionLinenumberEnd: 4044
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mg_strncasecmp
        - next_option
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4038,19'
          Dst:             next_option
        - Src:             'src/civetweb.c:4039,7'
          Dst:             mg_strncasecmp
    - functionName:    get_http_version
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3951
      functionLinenumberEnd: 3963
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    next_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3974
      functionLinenumberEnd: 4022
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          268
      EdgeCount:       50
      CyclomaticComplexity: 14
      functionsReached:
        - memchr
        - strchr
        - strlen
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3988,14'
          Dst:             strchr
        - Src:             'src/civetweb.c:3994,21'
          Dst:             strlen
        - Src:             'src/civetweb.c:4013,31'
          Dst:             memchr
    - functionName:    mg_strncasecmp
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3092
      functionLinenumberEnd: 3101
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - lowercase
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3097,11'
          Dst:             lowercase
        - Src:             'src/civetweb.c:3097,29'
          Dst:             lowercase
    - functionName:    lowercase
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3085
      functionLinenumberEnd: 3086
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - tolower
      functionUses:    10
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3086,9'
          Dst:             tolower
    - functionName:    tolower
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    28
      BranchProfiles:  []
      Callsites:       []
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3895
      functionLinenumberEnd: 3904
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          62
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - mg_strcasecmp
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3898,8'
          Dst:             mg_strcasecmp
    - functionName:    handle_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15050
      functionLinenumberEnd: 15741
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         267
      ICount:          1431
      EdgeCount:       348
      CyclomaticComplexity: 83
      functionsReached:
        - check_authorization
        - dav_lock_file
        - dav_mkcol
        - dav_move_file
        - dav_proppatch
        - dav_unlock_file
        - delete_file
        - discard_unread_request_data
        - get_first_ssl_listener_index
        - get_header
        - get_request_handler
        - gmt_time_string
        - handle_directory_request
        - handle_file_based_request
        - handle_not_modified_static_file_request
        - handle_propfind
        - handle_static_file_request
        - interpret_uri
        - is_authorized_for_put
        - is_not_modified
        - is_put_or_delete_method
        - mg_cry_internal_wrap
        - mg_free
        - mg_get_request_link
        - mg_malloc
        - mg_printf
        - mg_send_http_error
        - mg_send_http_redirect
        - mg_strcasecmp
        - mg_strdup
        - must_hide_file
        - ntohs
        - put_file
        - redirect_to_https_port
        - release_handler_ref
        - remove_dot_segments
        - send_authorization_request
        - send_options
        - set_throttle
        - should_decode_query_string
        - should_decode_url
        - strchr
        - strcmp
        - strlen
        - strncat
        - suggest_connection_header
        - time
        - url_decode_in_place
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:15070,19'
          Dst:             time
        - Src:             'src/civetweb.c:15081,41'
          Dst:             strchr
        - Src:             'src/civetweb.c:15088,15'
          Dst:             get_first_ssl_listener_index
        - Src:             'src/civetweb.c:15090,20'
          Dst:             ntohs
        - Src:             'src/civetweb.c:15092,4'
          Dst:             redirect_to_https_port
        - Src:             'src/civetweb.c:15096,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15100,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:15109,6'
          Dst:             should_decode_url
        - Src:             'src/civetweb.c:15110,3'
          Dst:             url_decode_in_place
        - Src:             'src/civetweb.c:15116,7'
          Dst:             should_decode_query_string
        - Src:             'src/civetweb.c:15117,4'
          Dst:             url_decode_in_place
        - Src:             'src/civetweb.c:15127,8'
          Dst:             mg_strdup
        - Src:             'src/civetweb.c:15132,2'
          Dst:             remove_dot_segments
        - Src:             'src/civetweb.c:15136,17'
          Dst:             strlen
        - Src:             'src/civetweb.c:15144,19'
          Dst:             set_throttle
        - Src:             'src/civetweb.c:15159,5'
          Dst:             discard_unread_request_data
        - Src:             'src/civetweb.c:15178,7'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15187,7'
          Dst:             get_header
        - Src:             'src/civetweb.c:15188,27'
          Dst:             get_header
        - Src:             'src/civetweb.c:15203,8'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:15208,8'
          Dst:             get_header
        - Src:             'src/civetweb.c:15216,4'
          Dst:             gmt_time_string
        - Src:             'src/civetweb.c:15230,14'
          Dst:             suggest_connection_header
        - Src:             'src/civetweb.c:15217,4'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:15233,5'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:15239,5'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:15255,6'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:15261,4'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:15262,4'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:15285,6'
          Dst:             get_request_handler
        - Src:             'src/civetweb.c:15301,30'
          Dst:             is_put_or_delete_method
        - Src:             'src/civetweb.c:15312,3'
          Dst:             interpret_uri
        - Src:             'src/civetweb.c:15329,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15340,6'
          Dst:             get_request_handler
        - Src:             'src/civetweb.c:15354,4'
          Dst:             release_handler_ref
        - Src:             'src/civetweb.c:15374,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15386,8'
          Dst:             is_authorized_for_put
        - Src:             'src/civetweb.c:15387,4'
          Dst:             send_authorization_request
        - Src:             'src/civetweb.c:15397,8'
          Dst:             check_authorization
        - Src:             'src/civetweb.c:15398,4'
          Dst:             send_authorization_request
        - Src:             'src/civetweb.c:15401,4'
          Dst:             release_handler_ref
        - Src:             'src/civetweb.c:15416,4'
          Dst:             release_handler_ref
        - Src:             'src/civetweb.c:15424,6'
          Dst:             discard_unread_request_data
        - Src:             'src/civetweb.c:15513,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15521,3'
          Dst:             handle_file_based_request
        - Src:             'src/civetweb.c:15533,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15534,4'
          Dst:             put_file
        - Src:             'src/civetweb.c:15541,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15542,4'
          Dst:             delete_file
        - Src:             'src/civetweb.c:15549,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15550,4'
          Dst:             dav_mkcol
        - Src:             'src/civetweb.c:15557,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15558,4'
          Dst:             dav_move_file
        - Src:             'src/civetweb.c:15564,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15565,4'
          Dst:             dav_move_file
        - Src:             'src/civetweb.c:15572,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15573,4'
          Dst:             dav_lock_file
        - Src:             'src/civetweb.c:15580,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15581,4'
          Dst:             dav_unlock_file
        - Src:             'src/civetweb.c:15588,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15589,4'
          Dst:             dav_proppatch
        - Src:             'src/civetweb.c:15598,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15610,20'
          Dst:             must_hide_file
        - Src:             'src/civetweb.c:15611,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15628,14'
          Dst:             strlen
        - Src:             'src/civetweb.c:15630,22'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:15632,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15634,4'
          Dst:             mg_get_request_link
        - Src:             'src/civetweb.c:15636,17'
          Dst:             strlen
        - Src:             'src/civetweb.c:15653,5'
          Dst:             strncat
        - Src:             'src/civetweb.c:15656,4'
          Dst:             mg_send_http_redirect
        - Src:             'src/civetweb.c:15657,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:15667,7'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15668,3'
          Dst:             handle_propfind
        - Src:             'src/civetweb.c:15673,7'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15679,3'
          Dst:             send_options
        - Src:             'src/civetweb.c:15684,12'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15685,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:15686,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15699,8'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:15701,4'
          Dst:             handle_directory_request
        - Src:             'src/civetweb.c:15703,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15715,3'
          Dst:             handle_file_based_request
        - Src:             'src/civetweb.c:15724,35'
          Dst:             is_not_modified
        - Src:             'src/civetweb.c:15726,3'
          Dst:             handle_not_modified_static_file_request
        - Src:             'src/civetweb.c:15735,2'
          Dst:             handle_static_file_request
    - functionName:    log_access
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16511
      functionLinenumberEnd: 16666
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         60
      ICount:          370
      EdgeCount:       80
      CyclomaticComplexity: 22
      functionsReached:
        - fflush
        - flockfile
        - fprintf
        - funlockfile
        - header_val
        - localtime
        - mg_cry_internal_wrap
        - mg_fclose
        - mg_fopen
        - mg_snprintf
        - mg_strlcpy
        - sockaddr_to_string
        - strftime
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16578,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:16601,8'
          Dst:             localtime
        - Src:             'src/civetweb.c:16604,4'
          Dst:             strftime
        - Src:             'src/civetweb.c:16606,4'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:16611,3'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:16612,13'
          Dst:             header_val
        - Src:             'src/civetweb.c:16613,16'
          Dst:             header_val
        - Src:             'src/civetweb.c:16615,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:16640,5'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:16649,3'
          Dst:             flockfile
        - Src:             'src/civetweb.c:16650,7'
          Dst:             fprintf
        - Src:             'src/civetweb.c:16653,7'
          Dst:             fflush
        - Src:             'src/civetweb.c:16656,3'
          Dst:             funlockfile
        - Src:             'src/civetweb.c:16657,7'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:16661,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    localtime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strftime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_strlcpy
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3075
      functionLinenumberEnd: 3080
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    header_val
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16494
      functionLinenumberEnd: 16502
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_get_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16497,22'
          Dst:             mg_get_header
    - functionName:    get_first_ssl_listener_index
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14467
      functionLinenumberEnd: 14475
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          74
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    redirect_to_https_port
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14581
      functionLinenumberEnd: 14621
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          121
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mg_construct_local_link
        - mg_send_http_error
        - mg_send_http_redirect
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14594,6'
          Dst:             mg_construct_local_link
        - Src:             'src/civetweb.c:14599,18'
          Dst:             strlen
        - Src:             'src/civetweb.c:14600,18'
          Dst:             strlen
        - Src:             'src/civetweb.c:14615,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:14620,2'
          Dst:             mg_send_http_redirect
    - functionName:    should_decode_url
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4098
      functionLinenumberEnd: 4104
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mg_strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4103,10'
          Dst:             mg_strcasecmp
    - functionName:    url_decode_in_place
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7321
      functionLinenumberEnd: 7324
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_url_decode
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7322,17'
          Dst:             strlen
        - Src:             'src/civetweb.c:7323,8'
          Dst:             mg_url_decode
    - functionName:    should_decode_query_string
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4109
      functionLinenumberEnd: 4116
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mg_strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4114,10'
          Dst:             mg_strcasecmp
    - functionName:    mg_strdup
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3141
      functionLinenumberEnd: 3142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_strndup_ctx
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3142,29'
          Dst:             strlen
        - Src:             'src/civetweb.c:3142,9'
          Dst:             mg_strndup_ctx
    - functionName:    remove_dot_segments
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8382
      functionLinenumberEnd: 8530
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         98
      ICount:          428
      EdgeCount:       128
      CyclomaticComplexity: 32
      functionsReached:
        - strcmp
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8419,8'
          Dst:             strncmp
        - Src:             'src/civetweb.c:8421,15'
          Dst:             strncmp
        - Src:             'src/civetweb.c:8430,13'
          Dst:             strncmp
        - Src:             'src/civetweb.c:8432,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8443,13'
          Dst:             strncmp
        - Src:             'src/civetweb.c:8451,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8465,13'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8465,33'
          Dst:             strcmp
    - functionName:    set_throttle
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14421
      functionLinenumberEnd: 14457
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          186
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - __isoc99_sscanf
        - lowercase
        - match_prefix
        - next_option
        - parse_match_net
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14427,17'
          Dst:             next_option
        - Src:             'src/civetweb.c:14430,11'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:14435,12'
          Dst:             lowercase
        - Src:             'src/civetweb.c:14435,41'
          Dst:             lowercase
        - Src:             'src/civetweb.c:14439,9'
          Dst:             lowercase
        - Src:             'src/civetweb.c:14441,16'
          Dst:             lowercase
        - Src:             'src/civetweb.c:14445,18'
          Dst:             parse_match_net
        - Src:             'src/civetweb.c:14451,15'
          Dst:             match_prefix
    - functionName:    discard_unread_request_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6720
      functionLinenumberEnd: 6725
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_read
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6723,9'
          Dst:             mg_read
    - functionName:    gmt_time_string
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3416
      functionLinenumberEnd: 3433
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          51
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - gmtime
        - mg_strlcpy
        - strftime
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3420,22'
          Dst:             gmtime
        - Src:             'src/civetweb.c:3429,3'
          Dst:             strftime
        - Src:             'src/civetweb.c:3431,3'
          Dst:             mg_strlcpy
    - functionName:    suggest_connection_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4121
      functionLinenumberEnd: 4122
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - should_keep_alive
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4122,9'
          Dst:             should_keep_alive
    - functionName:    mg_printf
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7270
      functionLinenumberEnd: 7278
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_vprintf
      functionUses:    28
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7275,11'
          Dst:             mg_vprintf
    - functionName:    get_request_handler
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14916
      functionLinenumberEnd: 14982
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         49
      ICount:          331
      EdgeCount:       65
      CyclomaticComplexity: 18
      functionsReached:
        - match_prefix
        - memcmp
        - mg_get_request_info
        - mg_lock_context
        - mg_unlock_context
        - strcmp
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14917,47'
          Dst:             mg_get_request_info
        - Src:             'src/civetweb.c:14920,19'
          Dst:             strlen
        - Src:             'src/civetweb.c:14928,3'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:14939,20'
          Dst:             strcmp
        - Src:             'src/civetweb.c:14946,14'
          Dst:             memcmp
        - Src:             'src/civetweb.c:14950,10'
          Dst:             match_prefix
        - Src:             'src/civetweb.c:14973,6'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14979,3'
          Dst:             mg_unlock_context
    - functionName:    is_put_or_delete_method
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7705
      functionLinenumberEnd: 7718
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         26
      ICount:          122
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - strcmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7710,13'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7710,34'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7711,16'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7711,39'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7712,16'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7712,38'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7713,16'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7713,43'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7714,16'
          Dst:             strcmp
    - functionName:    interpret_uri
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7928
      functionLinenumberEnd: 8256
      functionDepth:   0
      returnType:      void
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         100
      ICount:          731
      EdgeCount:       134
      CyclomaticComplexity: 36
      functionsReached:
        - extention_matches_script
        - extention_matches_template_text
        - is_civetweb_webdav_method
        - is_put_or_delete_method
        - match_prefix
        - mg_free
        - mg_get_header
        - mg_malloc
        - mg_snprintf
        - mg_stat
        - mg_strcasecmp
        - next_option
        - strlen
        - strstr
        - substitute_index_file
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7961,30'
          Dst:             is_put_or_delete_method
        - Src:             'src/civetweb.c:7964,23'
          Dst:             is_civetweb_webdav_method
        - Src:             'src/civetweb.c:7982,25'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:7983,7'
          Dst:             strstr
        - Src:             'src/civetweb.c:8005,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:8019,21'
          Dst:             next_option
        - Src:             'src/civetweb.c:8020,21'
          Dst:             match_prefix
        - Src:             'src/civetweb.c:8021,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:8040,7'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:8047,22'
          Dst:             strlen
        - Src:             'src/civetweb.c:8054,7'
          Dst:             extention_matches_script
        - Src:             'src/civetweb.c:8070,7'
          Dst:             extention_matches_template_text
        - Src:             'src/civetweb.c:8089,8'
          Dst:             substitute_index_file
        - Src:             'src/civetweb.c:8096,9'
          Dst:             extention_matches_script
        - Src:             'src/civetweb.c:8099,16'
          Dst:             extention_matches_template_text
        - Src:             'src/civetweb.c:8105,19'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:8122,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:8129,7'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:8142,16'
          Dst:             strlen
        - Src:             'src/civetweb.c:8144,14'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:8153,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:8169,17'
          Dst:             extention_matches_script
        - Src:             'src/civetweb.c:8170,18'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:8177,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:8186,9'
          Dst:             substitute_index_file
        - Src:             'src/civetweb.c:8190,10'
          Dst:             extention_matches_script
        - Src:             'src/civetweb.c:8192,32'
          Dst:             strlen
        - Src:             'src/civetweb.c:8197,32'
          Dst:             strlen
        - Src:             'src/civetweb.c:8206,8'
          Dst:             mg_free
        - Src:             'src/civetweb.c:8240,2'
          Dst:             mg_free
    - functionName:    release_handler_ref
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15034
      functionLinenumberEnd: 15041
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_lock_context
        - mg_unlock_context
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:15037,3'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:15039,3'
          Dst:             mg_unlock_context
    - functionName:    is_authorized_for_put
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9354
      functionLinenumberEnd: 9369
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          65
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - authorize
        - mg_fclose
        - mg_fopen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9362,10'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:9363,10'
          Dst:             authorize
        - Src:             'src/civetweb.c:9364,10'
          Dst:             mg_fclose
    - functionName:    send_authorization_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9293
      functionLinenumberEnd: 9333
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          107
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mg_lock_context
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_snprintf
        - mg_unlock_context
        - send_additional_header
        - send_no_cache_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9302,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:9305,2'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:9311,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:9312,2'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:9313,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:9314,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:9317,2'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9328,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:9332,2'
          Dst:             mg_response_header_send
    - functionName:    check_authorization
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9237
      functionLinenumberEnd: 9287
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         27
      ICount:          151
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - authorize
        - is_file_opened
        - memcmp
        - mg_cry_internal_wrap
        - mg_fclose
        - mg_fopen
        - mg_snprintf
        - next_option
        - open_auth_file
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9250,17'
          Dst:             next_option
        - Src:             'src/civetweb.c:9251,8'
          Dst:             memcmp
        - Src:             'src/civetweb.c:9252,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9261,12'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:9262,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9262,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:9262,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:9272,7'
          Dst:             is_file_opened
        - Src:             'src/civetweb.c:9273,3'
          Dst:             open_auth_file
        - Src:             'src/civetweb.c:9276,6'
          Dst:             is_file_opened
        - Src:             'src/civetweb.c:9277,16'
          Dst:             authorize
        - Src:             'src/civetweb.c:9278,9'
          Dst:             mg_fclose
    - functionName:    handle_file_based_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15749
      functionLinenumberEnd: 15843
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          174
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - handle_cgi_request
        - handle_not_modified_static_file_request
        - handle_ssi_file_request
        - handle_static_file_request
        - is_in_script_path
        - is_not_modified
        - match_prefix_strlen
        - mg_send_http_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:15807,8'
          Dst:             match_prefix_strlen
        - Src:             'src/civetweb.c:15811,9'
          Dst:             is_in_script_path
        - Src:             'src/civetweb.c:15813,6'
          Dst:             handle_cgi_request
        - Src:             'src/civetweb.c:15816,6'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15824,6'
          Dst:             match_prefix_strlen
        - Src:             'src/civetweb.c:15825,7'
          Dst:             is_in_script_path
        - Src:             'src/civetweb.c:15826,4'
          Dst:             handle_ssi_file_request
        - Src:             'src/civetweb.c:15829,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:15835,35'
          Dst:             is_not_modified
        - Src:             'src/civetweb.c:15837,3'
          Dst:             handle_not_modified_static_file_request
        - Src:             'src/civetweb.c:15842,2'
          Dst:             handle_static_file_request
    - functionName:    put_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12501
      functionLinenumberEnd: 12631
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         40
      ICount:          248
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - access
        - fclose_on_exec
        - forward_body_data
        - fseeko64
        - mg_fclose
        - mg_fopen
        - mg_get_header
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_stat
        - parse_range_header
        - put_dir
        - send_additional_header
        - send_no_cache_header
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12513,6'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:12527,8'
          Dst:             access
        - Src:             'src/civetweb.c:12531,5'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12542,8'
          Dst:             put_dir
        - Src:             'src/civetweb.c:12549,3'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12550,3'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:12551,3'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:12552,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12555,3'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:12568,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12568,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:12564,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12578,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12578,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:12574,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12584,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:12586,9'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:12591,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12591,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:12587,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12595,2'
          Dst:             fclose_on_exec
        - Src:             'src/civetweb.c:12596,10'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:12598,25'
          Dst:             parse_range_header
        - Src:             'src/civetweb.c:12600,12'
          Dst:             fseeko64
        - Src:             'src/civetweb.c:12601,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12609,7'
          Dst:             forward_body_data
        - Src:             'src/civetweb.c:12613,9'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:12617,6'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:12624,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12625,2'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:12626,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:12627,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12630,2'
          Dst:             mg_response_header_send
    - functionName:    delete_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12636
      functionLinenumberEnd: 12690
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - access
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_stat
        - remove
        - remove_directory
        - send_additional_header
        - send_no_cache_header
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12639,7'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:12641,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12651,7'
          Dst:             remove_directory
        - Src:             'src/civetweb.c:12653,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12656,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12663,6'
          Dst:             access
        - Src:             'src/civetweb.c:12665,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12674,6'
          Dst:             remove
        - Src:             'src/civetweb.c:12676,3'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12677,3'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:12678,3'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:12679,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12680,3'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:12688,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12688,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:12684,3'
          Dst:             mg_send_http_error
    - functionName:    dav_mkcol
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12258
      functionLinenumberEnd: 12325
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          143
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - mg_cry_internal_wrap
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_stat
        - mkdir
        - send_additional_header
        - send_static_cache_header
        - strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'src/civetweb.c:12307,3'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:12270,7'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:12271,3'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12271,3'
          Dst:             strerror
        - Src:             'src/civetweb.c:12271,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12283,57'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12283,48'
          Dst:             strerror
        - Src:             'src/civetweb.c:12282,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12290,57'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12290,48'
          Dst:             strerror
        - Src:             'src/civetweb.c:12289,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12294,7'
          Dst:             mkdir
        - Src:             'src/civetweb.c:12298,3'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12299,3'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:12300,3'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:12301,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12304,3'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:12307,11'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12323,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12323,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:12319,3'
          Dst:             mg_send_http_error
    - functionName:    dav_move_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12337
      functionLinenumberEnd: 12496
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          338
      EdgeCount:       83
      CyclomaticComplexity: 21
      functionsReached:
        - __errno_location
        - get_rel_url_at_current_server
        - get_uri_type
        - mg_free
        - mg_get_header
        - mg_malloc
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_snprintf
        - mg_stat
        - mg_strdup_ctx
        - mg_url_decode
        - remove
        - remove_dot_segments
        - rename
        - strlen
        - toupper
      functionUses:    2
      BranchProfiles:
        - Branch String:   'src/civetweb.c:12471,4'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:12353,18'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:12354,20'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:12355,34'
          Dst:             toupper
        - Src:             'src/civetweb.c:12360,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12366,19'
          Dst:             get_uri_type
        - Src:             'src/civetweb.c:12368,17'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:12371,8'
          Dst:             get_rel_url_at_current_server
        - Src:             'src/civetweb.c:12373,18'
          Dst:             strlen
        - Src:             'src/civetweb.c:12374,18'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:12375,5'
          Dst:             mg_url_decode
        - Src:             'src/civetweb.c:12379,4'
          Dst:             remove_dot_segments
        - Src:             'src/civetweb.c:12382,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:12393,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:12398,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12403,6'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:12407,13'
          Dst:             remove
        - Src:             'src/civetweb.c:12409,5'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12417,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12465,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12469,8'
          Dst:             rename
        - Src:             'src/civetweb.c:12471,12'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12488,3'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12489,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12492,3'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:12494,3'
          Dst:             mg_send_http_error
    - functionName:    dav_lock_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13145
      functionLinenumberEnd: 13272
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         49
      ICount:          382
      EdgeCount:       64
      CyclomaticComplexity: 17
      functionsReached:
        - mg_get_current_time_ns
        - mg_get_request_link
        - mg_lock_context
        - mg_md5
        - mg_printf
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_strlcpy
        - mg_unlock_context
        - send_additional_header
        - send_static_cache_header
        - sprintf
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13161,2'
          Dst:             mg_get_request_link
        - Src:             'src/civetweb.c:13169,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:13170,17'
          Dst:             mg_get_current_time_ns
        - Src:             'src/civetweb.c:13176,9'
          Dst:             strcmp
        - Src:             'src/civetweb.c:13177,10'
          Dst:             strcmp
        - Src:             'src/civetweb.c:13190,7'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:13191,7'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:13202,28'
          Dst:             mg_get_current_time_ns
        - Src:             'src/civetweb.c:13203,5'
          Dst:             sprintf
        - Src:             'src/civetweb.c:13204,5'
          Dst:             mg_md5
        - Src:             'src/civetweb.c:13211,5'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:13214,5'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:13235,2'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:13239,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:13240,2'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:13241,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:13242,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:13246,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:13247,2'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:13250,2'
          Dst:             mg_printf
    - functionName:    dav_unlock_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13277
      functionLinenumberEnd: 13305
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mg_get_request_link
        - mg_lock_context
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_unlock_context
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13287,2'
          Dst:             mg_get_request_link
        - Src:             'src/civetweb.c:13289,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:13292,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:13294,4'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:13296,4'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:13297,4'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:13301,2'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:13304,2'
          Dst:             mg_send_http_error
    - functionName:    dav_proppatch
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13310
      functionLinenumberEnd: 13340
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mg_get_request_link
        - mg_printf
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - send_additional_header
        - send_static_cache_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13319,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:13320,2'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:13321,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:13322,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:13326,2'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:13328,2'
          Dst:             mg_get_request_link
        - Src:             'src/civetweb.c:13331,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:13336,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:13339,2'
          Dst:             mg_printf
    - functionName:    must_hide_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10091
      functionLinenumberEnd: 10099
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - match_prefix_strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10095,11'
          Dst:             match_prefix_strlen
        - Src:             'src/civetweb.c:10096,14'
          Dst:             match_prefix_strlen
    - functionName:    mg_get_request_link
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3820
      functionLinenumberEnd: 3821
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_construct_local_link
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3821,9'
          Dst:             mg_construct_local_link
    - functionName:    strncat
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_send_http_redirect
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4750
      functionLinenumberEnd: 4852
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          141
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - send_additional_header
        - send_cors_header
        - send_no_cache_header
        - send_static_cache_header
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4824,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:4825,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4828,3'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:4831,3'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:4833,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:4834,2'
          Dst:             send_cors_header
        - Src:             'src/civetweb.c:4839,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4841,2'
          Dst:             mg_response_header_send
    - functionName:    handle_propfind
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13104
      functionLinenumberEnd: 13140
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          126
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached:
        - mg_get_header
        - mg_printf
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_strcasecmp
        - print_dav_dir_entry
        - print_props
        - scan_directory
        - send_additional_header
        - send_static_cache_header
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13105,22'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:13113,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:13114,2'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:13115,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:13116,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:13120,2'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:13123,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:13128,2'
          Dst:             print_props
        - Src:             'src/civetweb.c:13133,10'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:13135,30'
          Dst:             strcmp
        - Src:             'src/civetweb.c:13136,3'
          Dst:             scan_directory
        - Src:             'src/civetweb.c:13136,3'
          Dst:             print_dav_dir_entry
        - Src:             'src/civetweb.c:13139,2'
          Dst:             mg_printf
    - functionName:    send_options
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12975
      functionLinenumberEnd: 12997
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         12
      ICount:          58
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - send_additional_header
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12984,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12985,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12989,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12990,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12993,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12995,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:12996,2'
          Dst:             mg_response_header_send
    - functionName:    handle_directory_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10270
      functionLinenumberEnd: 10376
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         45
      ICount:          309
      EdgeCount:       59
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - compare_dir_entries
        - dir_scan_callback
        - gmt_time_string
        - mg_free
        - mg_malloc
        - mg_printf
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_sort
        - mg_strlcpy
        - print_dir_entry
        - scan_directory
        - send_additional_header
        - send_static_cache_header
        - strcpy
        - strcspn
        - strerror
        - strlen
        - time
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10276,19'
          Dst:             time
        - Src:             'src/civetweb.c:10282,7'
          Dst:             scan_directory
        - Src:             'src/civetweb.c:10282,7'
          Dst:             dir_scan_callback
        - Src:             'src/civetweb.c:10287,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:10287,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:10283,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10291,2'
          Dst:             gmt_time_string
        - Src:             'src/civetweb.c:10295,12'
          Dst:             strcspn
        - Src:             'src/civetweb.c:10297,27'
          Dst:             strlen
        - Src:             'src/civetweb.c:10297,17'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:10300,5'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:10302,6'
          Dst:             strcpy
        - Src:             'src/civetweb.c:10304,6'
          Dst:             strcpy
        - Src:             'src/civetweb.c:10306,6'
          Dst:             strcpy
        - Src:             'src/civetweb.c:10299,45'
          Dst:             strlen
        - Src:             'src/civetweb.c:10323,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:10324,2'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:10325,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:10326,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10332,2'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:10335,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:10349,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:10352,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:10362,3'
          Dst:             mg_sort
        - Src:             'src/civetweb.c:10362,3'
          Dst:             compare_dir_entries
        - Src:             'src/civetweb.c:10368,4'
          Dst:             print_dir_entry
        - Src:             'src/civetweb.c:10369,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:10371,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:10374,2'
          Dst:             mg_printf
    - functionName:    is_not_modified
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10800
      functionLinenumberEnd: 10813
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - construct_etag
        - mg_get_header
        - mg_strcasecmp
        - parse_date_string
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10802,20'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:10803,20'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:10804,2'
          Dst:             construct_etag
        - Src:             'src/civetweb.c:10807,11'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:10810,38'
          Dst:             parse_date_string
    - functionName:    handle_not_modified_static_file_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10819
      functionLinenumberEnd: 10838
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          59
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - construct_etag
        - gmt_time_string
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - send_additional_header
        - send_static_cache_header
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10826,2'
          Dst:             gmt_time_string
        - Src:             'src/civetweb.c:10827,2'
          Dst:             construct_etag
        - Src:             'src/civetweb.c:10830,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:10831,2'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:10832,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:10833,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10834,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10837,2'
          Dst:             mg_response_header_send
    - functionName:    handle_static_file_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10555
      functionLinenumberEnd: 10777
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         71
      ICount:          484
      EdgeCount:       98
      CyclomaticComplexity: 29
      functionsReached:
        - __errno_location
        - construct_etag
        - fclose_on_exec
        - get_mime_type
        - gmt_time_string
        - mg_fclose
        - mg_fopen
        - mg_get_header
        - mg_response_header_add
        - mg_response_header_add_lines
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - mg_snprintf
        - mg_stat
        - parse_range_header
        - send_additional_header
        - send_cors_header
        - send_file_data
        - send_static_cache_header
        - strcmp
        - strerror
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10577,21'
          Dst:             strcmp
        - Src:             'src/civetweb.c:10580,3'
          Dst:             get_mime_type
        - Src:             'src/civetweb.c:10583,18'
          Dst:             strlen
        - Src:             'src/civetweb.c:10586,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10606,14'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:10610,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10613,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10631,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10633,21'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:10648,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:10653,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:10653,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:10649,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10657,2'
          Dst:             fclose_on_exec
        - Src:             'src/civetweb.c:10663,15'
          Dst:             parse_range_header
        - Src:             'src/civetweb.c:10668,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10673,10'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:10679,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10705,2'
          Dst:             gmt_time_string
        - Src:             'src/civetweb.c:10706,2'
          Dst:             construct_etag
        - Src:             'src/civetweb.c:10709,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:10710,2'
          Dst:             send_static_cache_header
        - Src:             'src/civetweb.c:10711,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:10712,2'
          Dst:             send_cors_header
        - Src:             'src/civetweb.c:10713,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10717,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10718,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10739,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10742,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10745,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10749,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10752,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:10758,3'
          Dst:             mg_response_header_add_lines
        - Src:             'src/civetweb.c:10762,2'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:10773,4'
          Dst:             send_file_data
        - Src:             'src/civetweb.c:10776,8'
          Dst:             mg_fclose
    - functionName:    get_mime_type
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8673
      functionLinenumberEnd: 8701
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          108
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - mg_get_builtin_mime_type
        - mg_strncasecmp
        - next_option
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8678,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:8690,17'
          Dst:             next_option
        - Src:             'src/civetweb.c:8693,7'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:8699,13'
          Dst:             mg_get_builtin_mime_type
        - Src:             'src/civetweb.c:8700,13'
          Dst:             strlen
    - functionName:    fclose_on_exec
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10527
      functionLinenumberEnd: 10540
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          53
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - fcntl64
        - fileno
        - mg_cry_internal_wrap
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10532,13'
          Dst:             fileno
        - Src:             'src/civetweb.c:10532,7'
          Dst:             fcntl64
        - Src:             'src/civetweb.c:10533,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:10533,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:10533,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    parse_range_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10500
      functionLinenumberEnd: 10504
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - __isoc99_sscanf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10501,9'
          Dst:             __isoc99_sscanf
    - functionName:    construct_etag
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10512
      functionLinenumberEnd: 10522
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - mg_snprintf
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10514,3'
          Dst:             mg_snprintf
    - functionName:    mg_response_header_start
      functionSourceFile: '/src/civetweb/src/response.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          92
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - free_buffered_response_header_list
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'src/response.inl:102,2'
          Dst:             free_buffered_response_header_list
    - functionName:    send_static_cache_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4149
      functionLinenumberEnd: 4192
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - atoi
        - mg_response_header_add
        - mg_snprintf
        - send_no_cache_header
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4159,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4165,12'
          Dst:             atoi
        - Src:             'src/civetweb.c:4171,3'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:4184,2'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:4186,2'
          Dst:             mg_response_header_add
    - functionName:    send_additional_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4197
      functionLinenumberEnd: 4221
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         14
      ICount:          88
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - atol
        - mg_response_header_add
        - mg_response_header_add_lines
        - mg_snprintf
      functionUses:    16
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4202,18'
          Dst:             atol
        - Src:             'src/civetweb.c:4205,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:4211,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4219,3'
          Dst:             mg_response_header_add_lines
    - functionName:    send_cors_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4226
      functionLinenumberEnd: 4294
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         46
      ICount:          264
      EdgeCount:       64
      CyclomaticComplexity: 20
      functionsReached:
        - mg_get_header
        - mg_response_header_add
        - mg_strcasecmp
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4227,27'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:4245,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:4252,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4257,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4268,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4275,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4282,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4289,3'
          Dst:             mg_response_header_add
    - functionName:    mg_response_header_add
      functionSourceFile: '/src/civetweb/src/response.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 199
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          238
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - mg_free
        - mg_malloc
        - mg_strdup_ctx
      functionUses:    45
      BranchProfiles:  []
      Callsites:
        - Src:             'src/response.inl:162,6'
          Dst:             mg_strdup_ctx
        - Src:             'src/response.inl:165,15'
          Dst:             mg_malloc
        - Src:             'src/response.inl:173,7'
          Dst:             mg_strdup_ctx
        - Src:             'src/response.inl:179,3'
          Dst:             mg_free
        - Src:             'src/response.inl:181,3'
          Dst:             mg_free
    - functionName:    mg_response_header_add_lines
      functionSourceFile: '/src/civetweb/src/response.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 221
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         15
      ICount:          103
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mg_free
        - mg_response_header_add
        - mg_strdup_ctx
        - parse_http_headers
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/response.inl:228,15'
          Dst:             mg_strdup_ctx
        - Src:             'src/response.inl:236,12'
          Dst:             parse_http_headers
        - Src:             'src/response.inl:241,7'
          Dst:             mg_response_header_add
        - Src:             'src/response.inl:249,2'
          Dst:             mg_free
    - functionName:    mg_response_header_send
      functionSourceFile: '/src/civetweb/src/response.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 342
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         31
      ICount:          200
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - free_buffered_response_header_list
        - gmt_time_string
        - mg_printf
        - mg_strcasecmp
        - mg_write
        - send_http1_response_status_line
        - suggest_connection_header
        - time
      functionUses:    18
      BranchProfiles:  []
      Callsites:
        - Src:             'src/response.inl:305,7'
          Dst:             send_http1_response_status_line
        - Src:             'src/response.inl:306,3'
          Dst:             free_buffered_response_header_list
        - Src:             'src/response.inl:310,3'
          Dst:             mg_printf
        - Src:             'src/response.inl:316,8'
          Dst:             mg_strcasecmp
        - Src:             'src/response.inl:319,8'
          Dst:             mg_strcasecmp
        - Src:             'src/response.inl:326,20'
          Dst:             time
        - Src:             'src/response.inl:328,3'
          Dst:             gmt_time_string
        - Src:             'src/response.inl:329,3'
          Dst:             mg_printf
        - Src:             'src/response.inl:332,41'
          Dst:             suggest_connection_header
        - Src:             'src/response.inl:332,3'
          Dst:             mg_printf
        - Src:             'src/response.inl:336,2'
          Dst:             mg_write
        - Src:             'src/response.inl:340,2'
          Dst:             free_buffered_response_header_list
    - functionName:    send_file_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10387
      functionLinenumberEnd: 10495
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         67
      ICount:          362
      EdgeCount:       90
      CyclomaticComplexity: 25
      functionsReached:
        - __errno_location
        - fileno
        - fseeko64
        - mg_cry_internal_wrap
        - mg_send_http_error
        - mg_strcasecmp
        - mg_write
        - pull_inner
        - sendfile64
        - strerror
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10406,12'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:10410,18'
          Dst:             fileno
        - Src:             'src/civetweb.c:10419,9'
          Dst:             sendfile64
        - Src:             'src/civetweb.c:10447,24'
          Dst:             fseeko64
        - Src:             'src/civetweb.c:10448,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:10448,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:10448,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:10452,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10475,21'
          Dst:             pull_inner
        - Src:             'src/civetweb.c:10485,24'
          Dst:             mg_write
    - functionName:    fileno
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sendfile64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fseeko64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pull_inner
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6365
      functionLinenumberEnd: 6670
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         97
      ICount:          546
      EdgeCount:       129
      CyclomaticComplexity: 34
      functionsReached:
        - __errno_location
        - fileno
        - mg_poll
        - read
        - recv
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6384,21'
          Dst:             fileno
        - Src:             'src/civetweb.c:6384,16'
          Dst:             read
        - Src:             'src/civetweb.c:6386,23'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:6540,14'
          Dst:             mg_poll
        - Src:             'src/civetweb.c:6555,12'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:6593,13'
          Dst:             mg_poll
        - Src:             'src/civetweb.c:6601,17'
          Dst:             recv
        - Src:             'src/civetweb.c:6602,24'
          Dst:             __errno_location
    - functionName:    mg_write
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7015
      functionLinenumberEnd: 7090
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          273
      EdgeCount:       46
      CyclomaticComplexity: 13
      functionsReached:
        - push_all
        - sleep
        - time
      functionUses:    13
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7035,14'
          Dst:             time
        - Src:             'src/civetweb.c:7044,11'
          Dst:             push_all
        - Src:             'src/civetweb.c:7061,9'
          Dst:             push_all
        - Src:             'src/civetweb.c:7071,5'
          Dst:             sleep
        - Src:             'src/civetweb.c:7073,32'
          Dst:             time
        - Src:             'src/civetweb.c:7079,11'
          Dst:             push_all
    - functionName:    push_all
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6318
      functionLinenumberEnd: 6350
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          156
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - atoi
        - push_inner
        - strtod
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6327,13'
          Dst:             atoi
        - Src:             'src/civetweb.c:6330,13'
          Dst:             strtod
        - Src:             'src/civetweb.c:6335,7'
          Dst:             push_inner
    - functionName:    sleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strtod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    push_inner
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6139
      functionLinenumberEnd: 6308
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - double
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         79
      ICount:          414
      EdgeCount:       105
      CyclomaticComplexity: 28
      functionsReached:
        - __errno_location
        - ferror
        - fwrite
        - mg_get_current_time_ns
        - mg_poll
        - send
        - usleep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6151,9'
          Dst:             mg_get_current_time_ns
        - Src:             'src/civetweb.c:6206,12'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:6223,13'
          Dst:             fwrite
        - Src:             'src/civetweb.c:6224,8'
          Dst:             ferror
        - Src:             'src/civetweb.c:6226,11'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:6231,13'
          Dst:             send
        - Src:             'src/civetweb.c:6232,20'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:6270,4'
          Dst:             usleep
        - Src:             'src/civetweb.c:6286,14'
          Dst:             mg_poll
        - Src:             'src/civetweb.c:6296,10'
          Dst:             mg_get_current_time_ns
    - functionName:    mg_get_current_time_ns
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1718
      functionLinenumberEnd: 1721
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - clock_gettime
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:1720,2'
          Dst:             clock_gettime
    - functionName:    fwrite
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ferror
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    usleep
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_poll
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6071
      functionLinenumberEnd: 6121
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         41
      ICount:          207
      EdgeCount:       55
      CyclomaticComplexity: 16
      functionsReached:
        - __errno_location
        - poll
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6096,12'
          Dst:             poll
        - Src:             'src/civetweb.c:6098,14'
          Dst:             __errno_location
    - functionName:    poll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    clock_gettime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    recv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send_http1_response_status_line
      functionSourceFile: '/src/civetweb/src/response.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          85
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - mg_get_response_code_text
        - mg_printf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/response.inl:56,15'
          Dst:             mg_get_response_code_text
        - Src:             'src/response.inl:58,6'
          Dst:             mg_printf
    - functionName:    mg_get_response_code_text
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4306
      functionLinenumberEnd: 4500
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         97
      ICount:          462
      EdgeCount:       107
      CyclomaticComplexity: 12
      functionsReached:
        - mg_cry_internal_wrap
      functionUses:    2
      BranchProfiles:
        - Branch String:   'src/civetweb.c:4311,2'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:4470,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    mg_strdup_ctx
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3135
      functionLinenumberEnd: 3136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_strndup_ctx
        - strlen
      functionUses:    14
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3136,29'
          Dst:             strlen
        - Src:             'src/civetweb.c:3136,9'
          Dst:             mg_strndup_ctx
    - functionName:    parse_http_headers
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11061
      functionLinenumberEnd: 11136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         50
      ICount:          275
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_strndup_ctx
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3120
      functionLinenumberEnd: 3129
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_malloc
        - mg_strlcpy
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3125,19'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:3126,3'
          Dst:             mg_strlcpy
    - functionName:    atol
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    send_no_cache_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4131
      functionLinenumberEnd: 4144
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_response_header_add
      functionUses:    9
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4133,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4138,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4142,3'
          Dst:             mg_response_header_add
    - functionName:    __isoc99_sscanf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    17
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_builtin_mime_type
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8651
      functionLinenumberEnd: 8666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         13
      ICount:          85
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mg_strcasecmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8655,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:8660,11'
          Dst:             mg_strcasecmp
    - functionName:    parse_date_string
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8318
      functionLinenumberEnd: 8373
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         18
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - __isoc99_sscanf
        - get_month_index
        - timegm
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8324,7'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:8333,10'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:8342,10'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:8351,10'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:8360,11'
          Dst:             get_month_index
        - Src:             'src/civetweb.c:8369,13'
          Dst:             timegm
    - functionName:    get_month_index
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8302
      functionLinenumberEnd: 8312
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          50
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8306,8'
          Dst:             strcmp
    - functionName:    timegm
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dir_scan_callback
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10239
      functionLinenumberEnd: 10265
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          122
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mg_realloc
        - mg_strdup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10247,20'
          Dst:             mg_realloc
        - Src:             'src/civetweb.c:10256,40'
          Dst:             mg_strdup
    - functionName:    scan_directory
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10108
      functionLinenumberEnd: 10157
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          146
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - closedir
        - mg_cry_internal_wrap
        - mg_snprintf
        - mg_stat
        - must_hide_file
        - opendir
        - readdir64
        - strcmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10115,14'
          Dst:             opendir
        - Src:             'src/civetweb.c:10119,16'
          Dst:             readdir64
        - Src:             'src/civetweb.c:10121,9'
          Dst:             strcmp
        - Src:             'src/civetweb.c:10121,37'
          Dst:             strcmp
        - Src:             'src/civetweb.c:10122,11'
          Dst:             must_hide_file
        - Src:             'src/civetweb.c:10126,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10141,9'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:10142,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:10142,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:10142,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:10154,9'
          Dst:             closedir
    - functionName:    strcspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strcpy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    compare_dir_entries
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10044
      functionLinenumberEnd: 10086
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         47
      ICount:          263
      EdgeCount:       62
      CyclomaticComplexity: 17
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10079,17'
          Dst:             strcmp
    - functionName:    mg_sort
      functionSourceFile: '/src/civetweb/src/sort.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 46
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         25
      ICount:          176
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    print_dir_entry
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9937
      functionLinenumberEnd: 10037
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         43
      ICount:          322
      EdgeCount:       56
      CyclomaticComplexity: 15
      functionsReached:
        - localtime
        - mg_free
        - mg_malloc
        - mg_printf
        - mg_snprintf
        - mg_strlcpy
        - mg_url_encode
        - strcpy
        - strcspn
        - strftime
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9949,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:9950,26'
          Dst:             strcspn
        - Src:             'src/civetweb.c:9951,17'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:9955,2'
          Dst:             mg_url_encode
        - Src:             'src/civetweb.c:9961,4'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:9963,5'
          Dst:             strcpy
        - Src:             'src/civetweb.c:9965,5'
          Dst:             strcpy
        - Src:             'src/civetweb.c:9967,5'
          Dst:             strcpy
        - Src:             'src/civetweb.c:9960,52'
          Dst:             strlen
        - Src:             'src/civetweb.c:9973,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9983,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9990,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9997,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10004,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10019,7'
          Dst:             localtime
        - Src:             'src/civetweb.c:10022,3'
          Dst:             strftime
        - Src:             'src/civetweb.c:10024,3'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:10026,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:10035,2'
          Dst:             mg_free
    - functionName:    mg_url_encode
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9909
      functionLinenumberEnd: 9930
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          159
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - __ctype_b_loc
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9916,7'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:9917,11'
          Dst:             strchr
    - functionName:    __ctype_b_loc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    23
      BranchProfiles:  []
      Callsites:       []
    - functionName:    opendir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    readdir64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    closedir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_realloc
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1522
      functionLinenumberEnd: 1523
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - realloc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:1523,9'
          Dst:             realloc
    - functionName:    realloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    print_props
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13006
      functionLinenumberEnd: 13083
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          162
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - gmt_time_string
        - mg_construct_local_link
        - mg_free
        - mg_malloc
        - mg_printf
        - strcat
        - strcmp
        - strcpy
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13017,20'
          Dst:             strlen
        - Src:             'src/civetweb.c:13017,34'
          Dst:             strlen
        - Src:             'src/civetweb.c:13018,16'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:13022,2'
          Dst:             strcpy
        - Src:             'src/civetweb.c:13023,2'
          Dst:             strcat
        - Src:             'src/civetweb.c:13026,2'
          Dst:             mg_construct_local_link
        - Src:             'src/civetweb.c:13039,2'
          Dst:             gmt_time_string
        - Src:             'src/civetweb.c:13040,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:13056,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:13057,4'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:13074,2'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:13081,2'
          Dst:             mg_free
    - functionName:    print_dav_dir_entry
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13088
      functionLinenumberEnd: 13097
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - print_props
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13091,10'
          Dst:             print_props
    - functionName:    mg_construct_local_link
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3681
      functionLinenumberEnd: 3815
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         60
      ICount:          370
      EdgeCount:       80
      CyclomaticComplexity: 22
      functionsReached:
        - get_proto_name
        - mg_free
        - mg_malloc
        - mg_snprintf
        - mg_strcasecmp
        - mg_url_encode
        - sockaddr_to_string
        - sprintf
        - strcmp
        - strlen
        - strncmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3690,47'
          Dst:             get_proto_name
        - Src:             'src/civetweb.c:3704,21'
          Dst:             strlen
        - Src:             'src/civetweb.c:3705,25'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:3709,3'
          Dst:             mg_url_encode
        - Src:             'src/civetweb.c:3713,9'
          Dst:             strncmp
        - Src:             'src/civetweb.c:3750,14'
          Dst:             strcmp
        - Src:             'src/civetweb.c:3751,17'
          Dst:             strcmp
        - Src:             'src/civetweb.c:3766,13'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:3776,5'
          Dst:             sprintf
        - Src:             'src/civetweb.c:3783,5'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:3790,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:3808,4'
          Dst:             mg_free
    - functionName:    get_proto_name
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3649
      functionLinenumberEnd: 3666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          42
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strncmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    match_prefix_strlen
      functionSourceFile: '/src/civetweb/src/match.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 255
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_match_alternatives
        - strlen
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'src/match.inl:259,40'
          Dst:             strlen
        - Src:             'src/match.inl:259,9'
          Dst:             mg_match_alternatives
    - functionName:    mg_match_alternatives
      functionSourceFile: '/src/civetweb/src/match.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          105
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - match_context_reset
        - memchr
        - mg_match_impl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/match.inl:136,48'
          Dst:             memchr
        - Src:             'src/match.inl:139,3'
          Dst:             match_context_reset
        - Src:             'src/match.inl:147,19'
          Dst:             mg_match_impl
        - Src:             'src/match.inl:155,4'
          Dst:             match_context_reset
        - Src:             'src/match.inl:161,37'
          Dst:             memchr
        - Src:             'src/match.inl:165,9'
          Dst:             mg_match_impl
    - functionName:    match_context_reset
      functionSourceFile: '/src/civetweb/src/match.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 10
      functionLinenumberEnd: 13
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_match_impl
      functionSourceFile: '/src/civetweb/src/match.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         70
      ICount:          417
      EdgeCount:       95
      CyclomaticComplexity: 27
      functionsReached:
        - lowercase
        - match_context_push
        - mg_match_impl
        - strcspn
        - strlen
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/match.inl:55,5'
          Dst:             match_context_push
        - Src:             'src/match.inl:78,11'
          Dst:             strlen
        - Src:             'src/match.inl:81,11'
          Dst:             strcspn
        - Src:             'src/match.inl:87,6'
          Dst:             match_context_push
        - Src:             'src/match.inl:94,11'
          Dst:             mg_match_impl
        - Src:             'src/match.inl:103,6'
          Dst:             match_context_push
        - Src:             'src/match.inl:118,14'
          Dst:             lowercase
        - Src:             'src/match.inl:118,40'
          Dst:             lowercase
    - functionName:    match_context_push
      functionSourceFile: '/src/civetweb/src/match.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 19
      functionLinenumberEnd: 25
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         4
      ICount:          47
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_lock_context
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13364
      functionLinenumberEnd: 13368
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          37
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_mutex_lock
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13366,9'
          Dst:             pthread_mutex_lock
    - functionName:    mg_unlock_context
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 13373
      functionLinenumberEnd: 13377
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          37
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - pthread_mutex_unlock
      functionUses:    25
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:13375,9'
          Dst:             pthread_mutex_unlock
    - functionName:    mg_md5
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8723
      functionLinenumberEnd: 8739
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          68
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - bin2str
        - md5_append
        - md5_finish
        - md5_init
        - strlen
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8729,2'
          Dst:             md5_init
        - Src:             'src/civetweb.c:8733,43'
          Dst:             strlen
        - Src:             'src/civetweb.c:8733,3'
          Dst:             md5_append
        - Src:             'src/civetweb.c:8737,2'
          Dst:             md5_finish
        - Src:             'src/civetweb.c:8738,2'
          Dst:             bin2str
    - functionName:    md5_init
      functionSourceFile: '/src/civetweb/src/md5.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    md5_append
      functionSourceFile: '/src/civetweb/src/md5.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          183
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - md5_process
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'src/md5.inl:437,3'
          Dst:             md5_process
        - Src:             'src/md5.inl:442,3'
          Dst:             md5_process
    - functionName:    md5_finish
      functionSourceFile: '/src/civetweb/src/md5.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          95
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - md5_append
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/md5.inl:464,2'
          Dst:             md5_append
        - Src:             'src/md5.inl:466,2'
          Dst:             md5_append
    - functionName:    bin2str
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8708
      functionLinenumberEnd: 8716
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         5
      ICount:          56
      EdgeCount:       5
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    md5_process
      functionSourceFile: '/src/civetweb/src/md5.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          1598
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    toupper
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_url_decode
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7288
      functionLinenumberEnd: 7315
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          286
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - __ctype_b_loc
        - tolower
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7295,10'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:7296,10'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:7297,8'
          Dst:             tolower
        - Src:             'src/civetweb.c:7298,8'
          Dst:             tolower
        - Src:             'src/civetweb.c:7299,21'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:7299,39'
          Dst:             __ctype_b_loc
    - functionName:    remove
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rename
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mkdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    remove_directory
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10164
      functionLinenumberEnd: 10225
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         32
      ICount:          164
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - closedir
        - mg_cry_internal_wrap
        - mg_snprintf
        - mg_stat
        - opendir
        - readdir64
        - remove
        - remove_directory
        - rmdir
        - strcmp
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10172,14'
          Dst:             opendir
        - Src:             'src/civetweb.c:10176,16'
          Dst:             readdir64
        - Src:             'src/civetweb.c:10179,9'
          Dst:             strcmp
        - Src:             'src/civetweb.c:10179,37'
          Dst:             strcmp
        - Src:             'src/civetweb.c:10183,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:10199,9'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:10200,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:10200,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:10200,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:10209,9'
          Dst:             remove_directory
        - Src:             'src/civetweb.c:10214,9'
          Dst:             remove
        - Src:             'src/civetweb.c:10219,9'
          Dst:             closedir
        - Src:             'src/civetweb.c:10221,3'
          Dst:             rmdir
    - functionName:    access
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    rmdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    put_dir
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10907
      functionLinenumberEnd: 10938
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         20
      ICount:          112
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - mg_stat
        - mkdir
        - strchr
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10914,30'
          Dst:             strchr
        - Src:             'src/civetweb.c:10926,8'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:10926,42'
          Dst:             mkdir
    - functionName:    forward_body_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11522
      functionLinenumberEnd: 11578
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          157
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - mg_get_header
        - mg_printf
        - mg_read
        - mg_send_http_error
        - mg_strcasecmp
        - push_all
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11531,11'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:11534,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:11538,27'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:11541,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:11544,10'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:11553,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:11558,16'
          Dst:             mg_read
        - Src:             'src/civetweb.c:11563,8'
          Dst:             push_all
        - Src:             'src/civetweb.c:11573,4'
          Dst:             mg_send_http_error
    - functionName:    mg_read
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6850
      functionLinenumberEnd: 7010
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         104
      ICount:          563
      EdgeCount:       141
      CyclomaticComplexity: 39
      functionsReached:
        - __ctype_b_loc
        - mg_read_inner
        - strtoul
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6874,20'
          Dst:             mg_read_inner
        - Src:             'src/civetweb.c:6890,11'
          Dst:             mg_read_inner
        - Src:             'src/civetweb.c:6907,10'
          Dst:             mg_read_inner
        - Src:             'src/civetweb.c:6923,14'
          Dst:             mg_read_inner
        - Src:             'src/civetweb.c:6933,19'
          Dst:             strtoul
        - Src:             'src/civetweb.c:6940,11'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:6974,11'
          Dst:             mg_read_inner
        - Src:             'src/civetweb.c:7009,9'
          Dst:             mg_read_inner
    - functionName:    mg_read_inner
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6730
      functionLinenumberEnd: 6787
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          218
      EdgeCount:       39
      CyclomaticComplexity: 11
      functionsReached:
        - pull_all
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6779,12'
          Dst:             pull_all
    - functionName:    strtoul
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pull_all
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6675
      functionLinenumberEnd: 6714
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         33
      ICount:          183
      EdgeCount:       43
      CyclomaticComplexity: 12
      functionsReached:
        - atoi
        - mg_get_current_time_ns
        - pull_inner
        - strtod
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6681,13'
          Dst:             atoi
        - Src:             'src/civetweb.c:6684,13'
          Dst:             strtod
        - Src:             'src/civetweb.c:6687,15'
          Dst:             mg_get_current_time_ns
        - Src:             'src/civetweb.c:6691,7'
          Dst:             pull_inner
        - Src:             'src/civetweb.c:6700,11'
          Dst:             mg_get_current_time_ns
    - functionName:    is_in_script_path
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14991
      functionLinenumberEnd: 14996
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    handle_cgi_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11932
      functionLinenumberEnd: 12251
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         115
      ICount:          753
      EdgeCount:       150
      CyclomaticComplexity: 37
      functionsReached:
        - __ctype_b_loc
        - __errno_location
        - abort_cgi_process
        - atoi
        - close
        - fclose
        - fdopen
        - forward_body_data
        - get_header
        - mg_cry_internal_wrap
        - mg_free
        - mg_malloc
        - mg_printf
        - mg_send_http_error
        - mg_snprintf
        - mg_strcasecmp
        - mg_write
        - parse_http_headers
        - pipe
        - prepare_cgi_environment
        - pull_all
        - read_message
        - send_file_data
        - setbuf
        - should_keep_alive
        - spawn_process
        - strerror
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11960,8'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:11967,6'
          Dst:             prepare_cgi_environment
        - Src:             'src/civetweb.c:11977,8'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:11980,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:11981,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:11985,11'
          Dst:             strrchr
        - Src:             'src/civetweb.c:11993,7'
          Dst:             pipe
        - Src:             'src/civetweb.c:11993,28'
          Dst:             pipe
        - Src:             'src/civetweb.c:11993,50'
          Dst:             pipe
        - Src:             'src/civetweb.c:11994,21'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:11994,12'
          Dst:             strerror
        - Src:             'src/civetweb.c:11995,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12000,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12008,6'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:12010,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12011,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12016,8'
          Dst:             spawn_process
        - Src:             'src/civetweb.c:12020,21'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12020,12'
          Dst:             strerror
        - Src:             'src/civetweb.c:12021,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12026,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12027,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:12055,8'
          Dst:             close
        - Src:             'src/civetweb.c:12056,8'
          Dst:             close
        - Src:             'src/civetweb.c:12057,8'
          Dst:             close
        - Src:             'src/civetweb.c:12060,13'
          Dst:             fdopen
        - Src:             'src/civetweb.c:12061,17'
          Dst:             fdopen
        - Src:             'src/civetweb.c:12062,17'
          Dst:             fdopen
        - Src:             'src/civetweb.c:12063,21'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12063,12'
          Dst:             strerror
        - Src:             'src/civetweb.c:12064,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12068,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12075,2'
          Dst:             setbuf
        - Src:             'src/civetweb.c:12076,2'
          Dst:             setbuf
        - Src:             'src/civetweb.c:12077,2'
          Dst:             setbuf
        - Src:             'src/civetweb.c:12085,8'
          Dst:             forward_body_data
        - Src:             'src/civetweb.c:12087,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12096,2'
          Dst:             fclose
        - Src:             'src/civetweb.c:12105,16'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:12107,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12111,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12121,16'
          Dst:             read_message
        - Src:             'src/civetweb.c:12128,7'
          Dst:             pull_all
        - Src:             'src/civetweb.c:12132,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12139,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12146,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12153,4'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12168,19'
          Dst:             parse_http_headers
        - Src:             'src/civetweb.c:12172,16'
          Dst:             get_header
        - Src:             'src/civetweb.c:12174,23'
          Dst:             atoi
        - Src:             'src/civetweb.c:12176,10'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:12179,13'
          Dst:             get_header
        - Src:             'src/civetweb.c:12186,7'
          Dst:             should_keep_alive
        - Src:             'src/civetweb.c:12192,8'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:12199,3'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:12204,2'
          Dst:             mg_write
        - Src:             'src/civetweb.c:12207,2'
          Dst:             mg_write
        - Src:             'src/civetweb.c:12211,2'
          Dst:             send_file_data
        - Src:             'src/civetweb.c:12215,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:12216,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:12219,3'
          Dst:             abort_cgi_process
        - Src:             'src/civetweb.c:12223,3'
          Dst:             close
        - Src:             'src/civetweb.c:12226,3'
          Dst:             close
        - Src:             'src/civetweb.c:12229,3'
          Dst:             close
        - Src:             'src/civetweb.c:12233,3'
          Dst:             fclose
        - Src:             'src/civetweb.c:12235,3'
          Dst:             close
        - Src:             'src/civetweb.c:12239,3'
          Dst:             fclose
        - Src:             'src/civetweb.c:12241,3'
          Dst:             close
        - Src:             'src/civetweb.c:12245,3'
          Dst:             fclose
        - Src:             'src/civetweb.c:12247,3'
          Dst:             close
        - Src:             'src/civetweb.c:12250,2'
          Dst:             mg_free
    - functionName:    handle_ssi_file_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12933
      functionLinenumberEnd: 12968
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          92
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fclose_on_exec
        - gmt_time_string
        - mg_fclose
        - mg_fopen
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_send_http_error
        - send_additional_header
        - send_cors_header
        - send_no_cache_header
        - send_ssi_file
        - strerror
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12935,19'
          Dst:             time
        - Src:             'src/civetweb.c:12941,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:12948,31'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12948,22'
          Dst:             strerror
        - Src:             'src/civetweb.c:12944,3'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:12953,3'
          Dst:             gmt_time_string
        - Src:             'src/civetweb.c:12954,3'
          Dst:             fclose_on_exec
        - Src:             'src/civetweb.c:12957,3'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:12958,3'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:12959,3'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:12960,3'
          Dst:             send_cors_header
        - Src:             'src/civetweb.c:12961,3'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:12962,3'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:12965,3'
          Dst:             send_ssi_file
        - Src:             'src/civetweb.c:12966,9'
          Dst:             mg_fclose
    - functionName:    send_ssi_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12828
      functionLinenumberEnd: 12926
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         48
      ICount:          265
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - do_ssi_exec
        - do_ssi_include
        - memcmp
        - mg_cry_internal_wrap
        - mg_fgetc
        - mg_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12833,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12840,15'
          Dst:             mg_fgetc
        - Src:             'src/civetweb.c:12853,25'
          Dst:             memcmp
        - Src:             'src/civetweb.c:12854,7'
          Dst:             do_ssi_include
        - Src:             'src/civetweb.c:12856,31'
          Dst:             memcmp
        - Src:             'src/civetweb.c:12857,7'
          Dst:             do_ssi_exec
        - Src:             'src/civetweb.c:12860,7'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12872,12'
          Dst:             mg_write
        - Src:             'src/civetweb.c:12881,24'
          Dst:             memcmp
        - Src:             'src/civetweb.c:12888,6'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12903,12'
          Dst:             mg_write
        - Src:             'src/civetweb.c:12915,6'
          Dst:             mg_write
        - Src:             'src/civetweb.c:12924,3'
          Dst:             mg_write
    - functionName:    mg_fgetc
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12810
      functionLinenumberEnd: 12820
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fgetc
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12816,10'
          Dst:             fgetc
    - functionName:    memcmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    do_ssi_include
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12704
      functionLinenumberEnd: 12780
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          207
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - fclose_on_exec
        - match_prefix_strlen
        - mg_cry_internal_wrap
        - mg_fclose
        - mg_fopen
        - mg_snprintf
        - send_file_data
        - send_ssi_file
        - strerror
        - strlen
        - strrchr
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12717,6'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:12720,9'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:12728,13'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:12733,7'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:12735,14'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:12736,17'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:12739,9'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:12742,13'
          Dst:             strrchr
        - Src:             'src/civetweb.c:12745,10'
          Dst:             strlen
        - Src:             'src/civetweb.c:12746,10'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:12755,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12760,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12764,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:12765,3'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12765,3'
          Dst:             strerror
        - Src:             'src/civetweb.c:12765,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12771,3'
          Dst:             fclose_on_exec
        - Src:             'src/civetweb.c:12772,7'
          Dst:             match_prefix_strlen
        - Src:             'src/civetweb.c:12774,4'
          Dst:             send_ssi_file
        - Src:             'src/civetweb.c:12776,4'
          Dst:             send_file_data
        - Src:             'src/civetweb.c:12778,9'
          Dst:             mg_fclose
    - functionName:    do_ssi_exec
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 12786
      functionLinenumberEnd: 12804
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - __isoc99_sscanf
        - mg_cry_internal_wrap
        - pclose
        - popen
        - send_file_data
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:12790,6'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:12791,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12794,25'
          Dst:             popen
        - Src:             'src/civetweb.c:12795,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:12795,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:12795,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:12800,4'
          Dst:             send_file_data
        - Src:             'src/civetweb.c:12801,4'
          Dst:             pclose
    - functionName:    popen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pclose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strrchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fgetc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    prepare_cgi_environment
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11695
      functionLinenumberEnd: 11884
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         73
      ICount:          634
      EdgeCount:       97
      CyclomaticComplexity: 26
      functionsReached:
        - addenv
        - getenv
        - mg_cry_internal_wrap
        - mg_free
        - mg_get_header
        - mg_malloc
        - mg_snprintf
        - mg_version
        - next_option
        - sockaddr_to_string
        - strlen
        - strrchr
        - toupper
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11708,21'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:11710,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:11718,15'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:11720,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:11723,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:11727,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11728,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11729,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11731,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11735,45'
          Dst:             mg_version
        - Src:             'src/civetweb.c:11735,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11738,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11739,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11740,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11742,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11744,2'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:11745,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11747,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11748,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11750,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11751,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11752,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11755,17'
          Dst:             strlen
        - Src:             'src/civetweb.c:11759,4'
          Dst:             addenv
        - Src:             'src/civetweb.c:11762,29'
          Dst:             strrchr
        - Src:             'src/civetweb.c:11764,5'
          Dst:             addenv
        - Src:             'src/civetweb.c:11774,25'
          Dst:             strlen
        - Src:             'src/civetweb.c:11772,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11778,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11780,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11782,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11788,2'
          Dst:             addenv
        - Src:             'src/civetweb.c:11790,11'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:11791,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11794,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11796,11'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:11797,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11799,11'
          Dst:             getenv
        - Src:             'src/civetweb.c:11800,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11803,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11808,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11828,11'
          Dst:             getenv
        - Src:             'src/civetweb.c:11829,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11833,11'
          Dst:             getenv
        - Src:             'src/civetweb.c:11834,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11838,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11839,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11845,9'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:11853,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:11865,15'
          Dst:             toupper
        - Src:             'src/civetweb.c:11868,3'
          Dst:             addenv
        - Src:             'src/civetweb.c:11876,14'
          Dst:             next_option
        - Src:             'src/civetweb.c:11877,3'
          Dst:             addenv
    - functionName:    pipe
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    spawn_process
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5906
      functionLinenumberEnd: 5999
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         30
      ICount:          258
      EdgeCount:       38
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - chdir
        - close
        - dup2
        - execle
        - exit
        - fork
        - mg_cry_internal_wrap
        - set_close_on_exec
        - sigaction
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:5912,13'
          Dst:             fork
        - Src:             'src/civetweb.c:5914,3'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5914,3'
          Dst:             strerror
        - Src:             'src/civetweb.c:5914,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5918,3'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:5919,3'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:5920,3'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:5923,7'
          Dst:             chdir
        - Src:             'src/civetweb.c:5924,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5924,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:5924,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5926,14'
          Dst:             dup2
        - Src:             'src/civetweb.c:5927,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5927,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:5927,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5932,14'
          Dst:             dup2
        - Src:             'src/civetweb.c:5933,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5933,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:5933,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5938,14'
          Dst:             dup2
        - Src:             'src/civetweb.c:5939,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5939,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:5939,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5950,10'
          Dst:             close
        - Src:             'src/civetweb.c:5951,10'
          Dst:             close
        - Src:             'src/civetweb.c:5952,10'
          Dst:             close
        - Src:             'src/civetweb.c:5955,10'
          Dst:             close
        - Src:             'src/civetweb.c:5956,10'
          Dst:             close
        - Src:             'src/civetweb.c:5957,10'
          Dst:             close
        - Src:             'src/civetweb.c:5966,4'
          Dst:             sigaction
        - Src:             'src/civetweb.c:5971,11'
          Dst:             execle
        - Src:             'src/civetweb.c:5972,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5972,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:5972,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5984,12'
          Dst:             execle
        - Src:             'src/civetweb.c:5986,12'
          Dst:             execle
        - Src:             'src/civetweb.c:5988,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5988,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:5988,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:5996,3'
          Dst:             exit
    - functionName:    fdopen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setbuf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    read_message
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11449
      functionLinenumberEnd: 11516
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         34
      ICount:          219
      EdgeCount:       46
      CyclomaticComplexity: 14
      functionsReached:
        - clock_gettime
        - get_http_header_len
        - mg_difftimespec
        - pull_inner
        - strtod
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11463,7'
          Dst:             strtod
        - Src:             'src/civetweb.c:11466,7'
          Dst:             strtod
        - Src:             'src/civetweb.c:11472,8'
          Dst:             strtod
        - Src:             'src/civetweb.c:11477,16'
          Dst:             get_http_header_len
        - Src:             'src/civetweb.c:11491,7'
          Dst:             pull_inner
        - Src:             'src/civetweb.c:11499,3'
          Dst:             clock_gettime
        - Src:             'src/civetweb.c:11503,18'
          Dst:             get_http_header_len
        - Src:             'src/civetweb.c:11507,8'
          Dst:             mg_difftimespec
    - functionName:    abort_cgi_process
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11895
      functionLinenumberEnd: 11923
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          86
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - kill
        - mg_atomic_dec
        - mg_free
        - waitpid
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11904,12'
          Dst:             waitpid
        - Src:             'src/civetweb.c:11908,3'
          Dst:             kill
        - Src:             'src/civetweb.c:11911,10'
          Dst:             waitpid
        - Src:             'src/civetweb.c:11917,9'
          Dst:             mg_atomic_dec
        - Src:             'src/civetweb.c:11920,3'
          Dst:             mg_free
    - functionName:    waitpid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    kill
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_atomic_dec
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1173
      functionLinenumberEnd: 1196
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          12
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_http_header_len
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8265
      functionLinenumberEnd: 8295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         37
      ICount:          211
      EdgeCount:       50
      CyclomaticComplexity: 15
      functionsReached:
        - __ctype_b_loc
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8272,11'
          Dst:             __ctype_b_loc
    - functionName:    mg_difftimespec
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3439
      functionLinenumberEnd: 3441
      functionDepth:   0
      returnType:      double
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fork
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_close_on_exec
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5809
      functionLinenumberEnd: 5825
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          66
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fake_connection
        - fcntl64
        - mg_cry_internal_wrap
        - strerror
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:5815,6'
          Dst:             fcntl64
        - Src:             'src/civetweb.c:5818,4'
          Dst:             fake_connection
        - Src:             'src/civetweb.c:5818,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:5818,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:5818,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    chdir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dup2
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    execle
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    exit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    addenv
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11622
      functionLinenumberEnd: 11686
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          206
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - mg_cry_internal_wrap
        - mg_realloc
        - mg_vsnprintf
        - strlen
      functionUses:    34
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11629,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:11644,20'
          Dst:             mg_realloc
        - Src:             'src/civetweb.c:11647,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:11659,10'
          Dst:             strlen
        - Src:             'src/civetweb.c:11669,3'
          Dst:             mg_vsnprintf
        - Src:             'src/civetweb.c:11680,6'
          Dst:             strlen
    - functionName:    mg_version
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3589
      functionLinenumberEnd: 3590
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_file_opened
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2926
      functionLinenumberEnd: 2932
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          26
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    open_auth_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8793
      functionLinenumberEnd: 8858
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         39
      ICount:          189
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - mg_fopen
        - mg_snprintf
        - mg_stat
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8802,9'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:8814,14'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:8816,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:8824,22'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:8834,27'
          Dst:             strlen
        - Src:             'src/civetweb.c:8839,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:8848,22'
          Dst:             mg_fopen
    - functionName:    authorize
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9180
      functionLinenumberEnd: 9206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         14
      ICount:          92
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - mg_strdup_ctx
        - parse_auth_header
        - read_auth_file
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9191,7'
          Dst:             parse_auth_header
        - Src:             'src/civetweb.c:9197,6'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:9205,9'
          Dst:             read_auth_file
    - functionName:    parse_auth_header
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8877
      functionLinenumberEnd: 9010
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         66
      ICount:          392
      EdgeCount:       89
      CyclomaticComplexity: 25
      functionsReached:
        - __ctype_b_loc
        - mg_base64_decode
        - mg_get_header
        - mg_strlcpy
        - mg_strncasecmp
        - skip_quoted
        - strchr
        - strcmp
        - strlen
        - strtoull
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8887,7'
          Dst:             mg_get_header
        - Src:             'src/civetweb.c:8893,11'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:8897,27'
          Dst:             strlen
        - Src:             'src/civetweb.c:8899,7'
          Dst:             mg_base64_decode
        - Src:             'src/civetweb.c:8904,11'
          Dst:             strchr
        - Src:             'src/civetweb.c:8919,18'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:8929,8'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:8935,10'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:8938,10'
          Dst:             skip_quoted
        - Src:             'src/civetweb.c:8943,12'
          Dst:             skip_quoted
        - Src:             'src/civetweb.c:8948,12'
          Dst:             skip_quoted
        - Src:             'src/civetweb.c:8955,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8957,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8959,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8961,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8963,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8965,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8967,15'
          Dst:             strcmp
        - Src:             'src/civetweb.c:8978,10'
          Dst:             strtoull
    - functionName:    read_auth_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9054
      functionLinenumberEnd: 9174
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         50
      ICount:          403
      EdgeCount:       66
      CyclomaticComplexity: 18
      functionsReached:
        - __ctype_b_loc
        - check_password_digest
        - memcmp
        - mg_cry_internal_wrap
        - mg_fclose
        - mg_fgets
        - mg_fopen
        - mg_md5
        - read_auth_file
        - strchr
        - strcmp
        - strlen
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'src/civetweb.c:9144,4'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:9064,9'
          Dst:             mg_fgets
        - Src:             'src/civetweb.c:9065,7'
          Dst:             strlen
        - Src:             'src/civetweb.c:9067,8'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:9068,11'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:9087,16'
          Dst:             strncmp
        - Src:             'src/civetweb.c:9088,9'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:9092,22'
          Dst:             read_auth_file
        - Src:             'src/civetweb.c:9093,12'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:9104,6'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:9113,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:9120,24'
          Dst:             strchr
        - Src:             'src/civetweb.c:9122,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:9131,21'
          Dst:             strchr
        - Src:             'src/civetweb.c:9133,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:9142,8'
          Dst:             strcmp
        - Src:             'src/civetweb.c:9143,11'
          Dst:             strcmp
        - Src:             'src/civetweb.c:9148,5'
          Dst:             mg_md5
        - Src:             'src/civetweb.c:9155,17'
          Dst:             memcmp
        - Src:             'src/civetweb.c:9158,12'
          Dst:             check_password_digest
    - functionName:    mg_fgets
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9015
      functionLinenumberEnd: 9025
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         8
      ICount:          51
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fgets
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9021,10'
          Dst:             fgets
    - functionName:    check_password_digest
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 8753
      functionLinenumberEnd: 8783
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         19
      ICount:          108
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - mg_md5
        - mg_strcasecmp
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:8763,6'
          Dst:             strlen
        - Src:             'src/civetweb.c:8767,2'
          Dst:             mg_md5
        - Src:             'src/civetweb.c:8768,2'
          Dst:             mg_md5
        - Src:             'src/civetweb.c:8782,9'
          Dst:             mg_strcasecmp
    - functionName:    fgets
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_base64_decode
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7627
      functionLinenumberEnd: 7700
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         51
      ICount:          352
      EdgeCount:       68
      CyclomaticComplexity: 19
      functionsReached:
        - b64reverse
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7640,7'
          Dst:             b64reverse
        - Src:             'src/civetweb.c:7645,7'
          Dst:             b64reverse
        - Src:             'src/civetweb.c:7650,7'
          Dst:             b64reverse
        - Src:             'src/civetweb.c:7655,7'
          Dst:             b64reverse
    - functionName:    skip_quoted
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3835
      functionLinenumberEnd: 3888
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          161
      EdgeCount:       30
      CyclomaticComplexity: 8
      functionsReached:
        - strcspn
        - strspn
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3839,26'
          Dst:             strcspn
        - Src:             'src/civetweb.c:3851,22'
          Dst:             strcspn
        - Src:             'src/civetweb.c:3875,31'
          Dst:             strspn
    - functionName:    strtoull
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strspn
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    b64reverse
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7599
      functionLinenumberEnd: 7619
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ''
      BBCount:         23
      ICount:          126
      EdgeCount:       31
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    is_civetweb_webdav_method
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7723
      functionLinenumberEnd: 7739
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         20
      ICount:          95
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7733,13'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7733,39'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7734,16'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7734,38'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7735,16'
          Dst:             strcmp
        - Src:             'src/civetweb.c:7735,38'
          Dst:             strcmp
    - functionName:    strstr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    match_prefix
      functionSourceFile: '/src/civetweb/src/match.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 250
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_match_alternatives
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/match.inl:249,9'
          Dst:             mg_match_alternatives
    - functionName:    extention_matches_script
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7748
      functionLinenumberEnd: 7786
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          83
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - match_prefix_strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7772,11'
          Dst:             match_prefix_strlen
    - functionName:    extention_matches_template_text
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7794
      functionLinenumberEnd: 7807
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - match_prefix_strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7802,6'
          Dst:             match_prefix_strlen
    - functionName:    substitute_index_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7866
      functionLinenumberEnd: 7911
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         28
      ICount:          185
      EdgeCount:       37
      CyclomaticComplexity: 11
      functionsReached:
        - mg_strlcpy
        - strcat
        - strchr
        - strcpy
        - strlen
        - strncmp
        - substitute_index_file_aux
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7867,12'
          Dst:             substitute_index_file_aux
        - Src:             'src/civetweb.c:7873,35'
          Dst:             strlen
        - Src:             'src/civetweb.c:7874,9'
          Dst:             strncmp
        - Src:             'src/civetweb.c:7880,9'
          Dst:             strlen
        - Src:             'src/civetweb.c:7885,20'
          Dst:             strlen
        - Src:             'src/civetweb.c:7892,6'
          Dst:             strcpy
        - Src:             'src/civetweb.c:7893,12'
          Dst:             strchr
        - Src:             'src/civetweb.c:7898,6'
          Dst:             strcat
        - Src:             'src/civetweb.c:7899,10'
          Dst:             substitute_index_file_aux
        - Src:             'src/civetweb.c:7903,7'
          Dst:             mg_strlcpy
    - functionName:    substitute_index_file_aux
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7818
      functionLinenumberEnd: 7856
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         20
      ICount:          133
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - mg_stat
        - mg_strlcpy
        - next_option
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7821,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:7834,17'
          Dst:             next_option
        - Src:             'src/civetweb.c:7841,3'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:7844,7'
          Dst:             mg_stat
    - functionName:    mg_get_request_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3596
      functionLinenumberEnd: 3631
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_vprintf
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7252
      functionLinenumberEnd: 7264
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - alloc_vprintf
        - mg_free
        - mg_write
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7257,13'
          Dst:             alloc_vprintf
        - Src:             'src/civetweb.c:7258,9'
          Dst:             mg_write
        - Src:             'src/civetweb.c:7261,3'
          Dst:             mg_free
    - functionName:    alloc_vprintf
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7179
      functionLinenumberEnd: 7227
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          131
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - alloc_vprintf2
        - mg_malloc
        - vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7190,8'
          Dst:             vsnprintf
        - Src:             'src/civetweb.c:7199,9'
          Dst:             alloc_vprintf2
        - Src:             'src/civetweb.c:7205,22'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:7212,3'
          Dst:             vsnprintf
        - Src:             'src/civetweb.c:7220,3'
          Dst:             vsnprintf
    - functionName:    alloc_vprintf2
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7142
      functionLinenumberEnd: 7165
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          87
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - mg_free
        - mg_malloc
        - vsnprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7150,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:7154,18'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:7160,9'
          Dst:             vsnprintf
    - functionName:    gmtime
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_match_net
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14312
      functionLinenumberEnd: 14416
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          176
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - __isoc99_sscanf
        - ntohl
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14316,6'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:14321,7'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:14333,19'
          Dst:             ntohl
    - functionName:    ntohl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_req_headers
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3914
      functionLinenumberEnd: 3924
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          99
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - mg_strcasecmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3919,9'
          Dst:             mg_strcasecmp
    - functionName:    mg_strcasestr
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3148
      functionLinenumberEnd: 3160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         13
      ICount:          75
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - mg_strncasecmp
        - strlen
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3149,22'
          Dst:             strlen
        - Src:             'src/civetweb.c:3149,51'
          Dst:             strlen
        - Src:             'src/civetweb.c:3153,8'
          Dst:             mg_strncasecmp
    - functionName:    is_valid_port
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9558
      functionLinenumberEnd: 9559
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_send_http_error_impl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4508
      functionLinenumberEnd: 4687
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         83
      ICount:          489
      EdgeCount:       105
      CyclomaticComplexity: 24
      functionsReached:
        - handle_file_based_request
        - mg_get_response_code_text
        - mg_printf
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_snprintf
        - mg_stat
        - mg_vsnprintf
        - mg_write
        - send_additional_header
        - send_cors_header
        - send_no_cache_header
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'src/civetweb.c:4572,6'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:4538,3'
          Dst:             mg_vsnprintf
        - Src:             'src/civetweb.c:4574,7'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:4585,7'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:4594,7'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:4613,17'
          Dst:             strlen
        - Src:             'src/civetweb.c:4619,13'
          Dst:             strchr
        - Src:             'src/civetweb.c:4635,11'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:4646,14'
          Dst:             strchr
        - Src:             'src/civetweb.c:4653,5'
          Dst:             handle_file_based_request
        - Src:             'src/civetweb.c:4662,3'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:4663,3'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:4664,3'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:4665,3'
          Dst:             send_cors_header
        - Src:             'src/civetweb.c:4667,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4672,3'
          Dst:             mg_response_header_send
        - Src:             'src/civetweb.c:4677,30'
          Dst:             mg_get_response_code_text
        - Src:             'src/civetweb.c:4678,4'
          Dst:             mg_printf
        - Src:             'src/civetweb.c:4679,31'
          Dst:             strlen
        - Src:             'src/civetweb.c:4679,4'
          Dst:             mg_write
    - functionName:    get_message
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19082
      functionLinenumberEnd: 19154
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         24
      ICount:          187
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - clock_gettime
        - mg_snprintf
        - read_message
        - reset_per_request_attributes
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19088,2'
          Dst:             reset_per_request_attributes
        - Src:             'src/civetweb.c:19091,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19103,2'
          Dst:             clock_gettime
        - Src:             'src/civetweb.c:19106,6'
          Dst:             read_message
        - Src:             'src/civetweb.c:19109,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19120,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19132,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19143,4'
          Dst:             mg_snprintf
    - functionName:    parse_http_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11253
      functionLinenumberEnd: 11334
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         35
      ICount:          250
      EdgeCount:       49
      CyclomaticComplexity: 16
      functionsReached:
        - __ctype_b_loc
        - get_http_header_len
        - is_valid_http_method
        - parse_http_headers
        - skip_to_end_of_word_and_terminate
        - strncmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11266,22'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11278,6'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11283,19'
          Dst:             get_http_header_len
        - Src:             'src/civetweb.c:11296,6'
          Dst:             skip_to_end_of_word_and_terminate
        - Src:             'src/civetweb.c:11303,6'
          Dst:             skip_to_end_of_word_and_terminate
        - Src:             'src/civetweb.c:11310,6'
          Dst:             skip_to_end_of_word_and_terminate
        - Src:             'src/civetweb.c:11315,6'
          Dst:             strncmp
        - Src:             'src/civetweb.c:11322,7'
          Dst:             is_valid_http_method
        - Src:             'src/civetweb.c:11327,20'
          Dst:             parse_http_headers
    - functionName:    switch_domain_context
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14520
      functionLinenumberEnd: 14576
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         37
      ICount:          178
      EdgeCount:       46
      CyclomaticComplexity: 11
      functionsReached:
        - get_host_from_request_info
        - mg_lock_context
        - mg_strncasecmp
        - mg_unlock_context
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14523,2'
          Dst:             get_host_from_request_info
        - Src:             'src/civetweb.c:14532,10'
          Dst:             strlen
        - Src:             'src/civetweb.c:14533,12'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:14547,25'
          Dst:             strlen
        - Src:             'src/civetweb.c:14549,13'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:14559,5'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:14561,5'
          Dst:             mg_unlock_context
    - functionName:    strtoll
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    get_host_from_request_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14482
      functionLinenumberEnd: 14515
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         16
      ICount:          106
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - get_header
        - strchr
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14484,6'
          Dst:             get_header
        - Src:             'src/civetweb.c:14495,10'
          Dst:             strchr
        - Src:             'src/civetweb.c:14506,10'
          Dst:             strchr
        - Src:             'src/civetweb.c:14510,17'
          Dst:             strlen
    - functionName:    skip_to_end_of_word_and_terminate
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11015
      functionLinenumberEnd: 11052
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         29
      ICount:          163
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - __ctype_b_loc
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11019,39'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11040,11'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11045,8'
          Dst:             __ctype_b_loc
    - functionName:    is_valid_http_method
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11237
      functionLinenumberEnd: 11238
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - get_http_method_info
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11238,10'
          Dst:             get_http_method_info
    - functionName:    get_http_method_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11218
      functionLinenumberEnd: 11232
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          48
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11226,8'
          Dst:             strcmp
    - functionName:    reset_per_request_attributes
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18167
      functionLinenumberEnd: 18204
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          129
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mg_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18196,3'
          Dst:             mg_free
    - functionName:    hexdump2string
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17085
      functionLinenumberEnd: 17106
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          126
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    refresh_trust
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16857
      functionLinenumberEnd: 16926
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         36
      ICount:          254
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - mg_cry_internal_wrap
        - mg_lock_context
        - mg_strcasecmp
        - mg_unlock_context
        - ssl_error
        - ssl_use_pem_file
        - stat64
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16878,6'
          Dst:             stat64
        - Src:             'src/civetweb.c:16882,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:16888,8'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:16891,15'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:16905,5'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:16906,5'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:16906,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16918,7'
          Dst:             ssl_use_pem_file
        - Src:             'src/civetweb.c:16919,4'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:16923,2'
          Dst:             mg_unlock_context
    - functionName:    ssl_error
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17076
      functionLinenumberEnd: 17079
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_use_pem_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17434
      functionLinenumberEnd: 17481
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         15
      ICount:          112
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - mg_cry_internal_wrap
        - ssl_error
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17436,3'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17436,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17446,3'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17446,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17455,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17472,4'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17472,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    pthread_self
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_setname_np
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_tcp_nodelay
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18209
      functionLinenumberEnd: 18225
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         12
      ICount:          63
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - setsockopt
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18213,7'
          Dst:             setsockopt
    - functionName:    accept_new_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20549
      functionLinenumberEnd: 20632
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         31
      ICount:          201
      EdgeCount:       40
      CyclomaticComplexity: 11
      functionsReached:
        - __errno_location
        - accept
        - check_acl
        - close
        - getsockname
        - mg_cry_internal_wrap
        - produce_socket
        - set_close_on_exec
        - set_non_blocking_mode
        - set_tcp_nodelay
        - setsockopt
        - sockaddr_to_string
        - strcmp
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20558,17'
          Dst:             accept
        - Src:             'src/civetweb.c:20560,13'
          Dst:             check_acl
        - Src:             'src/civetweb.c:20561,3'
          Dst:             sockaddr_to_string
        - Src:             'src/civetweb.c:20562,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20566,3'
          Dst:             close
        - Src:             'src/civetweb.c:20570,3'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:20574,7'
          Dst:             getsockname
        - Src:             'src/civetweb.c:20575,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:20575,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:20575,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20591,8'
          Dst:             setsockopt
        - Src:             'src/civetweb.c:20597,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:20597,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:20597,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20614,12'
          Dst:             strcmp
        - Src:             'src/civetweb.c:20615,8'
          Dst:             set_tcp_nodelay
        - Src:             'src/civetweb.c:20616,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:20616,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:20616,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:20627,3'
          Dst:             set_non_blocking_mode
        - Src:             'src/civetweb.c:20630,3'
          Dst:             produce_socket
    - functionName:    accept
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    check_acl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16677
      functionLinenumberEnd: 16709
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         22
      ICount:          130
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - mg_cry_internal_wrap
        - next_option
        - parse_match_net
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16687,18'
          Dst:             next_option
        - Src:             'src/civetweb.c:16693,15'
          Dst:             parse_match_net
        - Src:             'src/civetweb.c:16696,5'
          Dst:             mg_cry_internal_wrap
    - functionName:    getsockname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_non_blocking_mode
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6006
      functionLinenumberEnd: 6016
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         8
      ICount:          45
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fcntl64
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6007,14'
          Dst:             fcntl64
        - Src:             'src/civetweb.c:6012,6'
          Dst:             fcntl64
    - functionName:    master_thread_run
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20637
      functionLinenumberEnd: 20820
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         45
      ICount:          300
      EdgeCount:       57
      CyclomaticComplexity: 14
      functionsReached:
        - accept_new_connection
        - close_all_listening_sockets
        - mg_join_thread
        - mg_poll
        - mg_set_thread_name
        - pthread_cond_broadcast
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - pthread_setspecific
        - time
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20647,2'
          Dst:             mg_set_thread_name
        - Src:             'src/civetweb.c:20669,2'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:20712,20'
          Dst:             time
        - Src:             'src/civetweb.c:20730,7'
          Dst:             mg_poll
        - Src:             'src/civetweb.c:20744,6'
          Dst:             accept_new_connection
        - Src:             'src/civetweb.c:20754,2'
          Dst:             close_all_listening_sockets
        - Src:             'src/civetweb.c:20762,8'
          Dst:             pthread_mutex_lock
        - Src:             'src/civetweb.c:20763,2'
          Dst:             pthread_cond_broadcast
        - Src:             'src/civetweb.c:20764,8'
          Dst:             pthread_mutex_unlock
        - Src:             'src/civetweb.c:20771,4'
          Dst:             mg_join_thread
        - Src:             'src/civetweb.c:20814,2'
          Dst:             pthread_setspecific
    - functionName:    close_all_listening_sockets
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15849
      functionLinenumberEnd: 15875
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - close
        - mg_free
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:15856,3'
          Dst:             close
        - Src:             'src/civetweb.c:15871,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:15873,2'
          Dst:             mg_free
    - functionName:    pthread_cond_broadcast
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_join_thread
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5887
      functionLinenumberEnd: 5891
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_join
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:5890,11'
          Dst:             pthread_join
    - functionName:    pthread_join
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    parse_port_string
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 15894
      functionLinenumberEnd: 16090
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         62
      ICount:          407
      EdgeCount:       79
      CyclomaticComplexity: 19
      functionsReached:
        - __isoc99_sscanf
        - htonl
        - htons
        - is_valid_port
        - mg_inet_pton
        - mg_strlcpy
        - strchr
        - strtoul
      functionUses:    1
      BranchProfiles:
        - Branch String:   'src/civetweb.c:16060,4'
          Branch Sides:    []
      Callsites:
        - Src:             'src/civetweb.c:15917,6'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:15930,7'
          Dst:             htonl
        - Src:             'src/civetweb.c:15931,26'
          Dst:             htons
        - Src:             'src/civetweb.c:15947,17'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:15964,26'
          Dst:             htons
        - Src:             'src/civetweb.c:15968,36'
          Dst:             strtoul
        - Src:             'src/civetweb.c:15968,13'
          Dst:             is_valid_port
        - Src:             'src/civetweb.c:15973,26'
          Dst:             htons
        - Src:             'src/civetweb.c:15976,19'
          Dst:             strchr
        - Src:             'src/civetweb.c:15995,3'
          Dst:             mg_strlcpy
        - Src:             'src/civetweb.c:15997,7'
          Dst:             mg_inet_pton
        - Src:             'src/civetweb.c:15999,8'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:16005,28'
          Dst:             htons
        - Src:             'src/civetweb.c:16053,20'
          Dst:             is_valid_port
    - functionName:    htonl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    htons
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_inet_pton
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9565
      functionLinenumberEnd: 9601
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          118
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9576,12'
          Dst:             getaddrinfo
        - Src:             'src/civetweb.c:9599,2'
          Dst:             freeaddrinfo
    - functionName:    getaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freeaddrinfo
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_servername_callback
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17557
      functionLinenumberEnd: 17620
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         31
      ICount:          192
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - mg_lock_context
        - mg_strcasecmp
        - mg_unlock_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17589,3'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:17591,3'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:17598,8'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:17605,3'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:17607,3'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:17616,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:17618,2'
          Dst:             mg_unlock_context
    - functionName:    ssl_info_callback
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17541
      functionLinenumberEnd: 17552
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ssl_get_protocol
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17487
      functionLinenumberEnd: 17503
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          99
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    init_ssl_ctx_impl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17733
      functionLinenumberEnd: 17968
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         65
      ICount:          578
      EdgeCount:       88
      CyclomaticComplexity: 25
      functionsReached:
        - atoi
        - clock_gettime
        - md5_append
        - md5_finish
        - md5_init
        - mg_cry_internal_wrap
        - mg_strcasecmp
        - ssl_error
        - ssl_get_protocol
        - ssl_info_callback
        - ssl_servername_callback
        - ssl_use_pem_file
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17750,3'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17750,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17775,17'
          Dst:             atoi
        - Src:             'src/civetweb.c:17776,40'
          Dst:             ssl_get_protocol
        - Src:             'src/civetweb.c:17804,2'
          Dst:             ssl_info_callback
        - Src:             'src/civetweb.c:17806,2'
          Dst:             ssl_servername_callback
        - Src:             'src/civetweb.c:17819,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17841,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17853,2'
          Dst:             md5_init
        - Src:             'src/civetweb.c:17854,2'
          Dst:             clock_gettime
        - Src:             'src/civetweb.c:17855,2'
          Dst:             md5_append
        - Src:             'src/civetweb.c:17858,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:17856,2'
          Dst:             md5_append
        - Src:             'src/civetweb.c:17861,13'
          Dst:             strlen
        - Src:             'src/civetweb.c:17859,2'
          Dst:             md5_append
        - Src:             'src/civetweb.c:17862,2'
          Dst:             md5_append
        - Src:             'src/civetweb.c:17863,2'
          Dst:             md5_append
        - Src:             'src/civetweb.c:17864,2'
          Dst:             md5_finish
        - Src:             'src/civetweb.c:17871,8'
          Dst:             ssl_use_pem_file
        - Src:             'src/civetweb.c:17881,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:17884,14'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:17895,10'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:17903,4'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17903,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17924,4'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17924,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17931,19'
          Dst:             atoi
        - Src:             'src/civetweb.c:17940,4'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:17940,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:17948,29'
          Dst:             atoi
    - functionName:    is_ssl_port_used
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16096
      functionLinenumberEnd: 16154
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         28
      ICount:          147
      EdgeCount:       36
      CyclomaticComplexity: 10
      functionsReached:
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16133,23'
          Dst:             strlen
    - functionName:    parse_http_response
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 11339
      functionLinenumberEnd: 11435
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         54
      ICount:          358
      EdgeCount:       75
      CyclomaticComplexity: 23
      functionsReached:
        - __ctype_b_loc
        - get_http_header_len
        - parse_http_headers
        - skip_to_end_of_word_and_terminate
        - strncmp
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:11352,22'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11364,6'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11369,20'
          Dst:             get_http_header_len
        - Src:             'src/civetweb.c:11381,6'
          Dst:             strncmp
        - Src:             'src/civetweb.c:11386,7'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11392,6'
          Dst:             skip_to_end_of_word_and_terminate
        - Src:             'src/civetweb.c:11399,6'
          Dst:             skip_to_end_of_word_and_terminate
        - Src:             'src/civetweb.c:11403,6'
          Dst:             strtol
        - Src:             'src/civetweb.c:11415,9'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11425,11'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:11428,20'
          Dst:             parse_http_headers
    - functionName:    strtol
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    connect_socket
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9614
      functionLinenumberEnd: 9904
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         80
      ICount:          523
      EdgeCount:       109
      CyclomaticComplexity: 31
      functionsReached:
        - __errno_location
        - close
        - connect
        - getsockopt
        - htons
        - is_valid_port
        - mg_inet_pton
        - mg_poll
        - mg_snprintf
        - set_close_on_exec
        - set_non_blocking_mode
        - socket
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9624,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9652,26'
          Dst:             is_valid_port
        - Src:             'src/civetweb.c:9655,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9671,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9708,10'
          Dst:             mg_inet_pton
        - Src:             'src/civetweb.c:9709,22'
          Dst:             htons
        - Src:             'src/civetweb.c:9734,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9745,11'
          Dst:             socket
        - Src:             'src/civetweb.c:9761,32'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9767,25'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9767,16'
          Dst:             strerror
        - Src:             'src/civetweb.c:9762,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9772,11'
          Dst:             set_non_blocking_mode
        - Src:             'src/civetweb.c:9775,32'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9781,25'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9781,16'
          Dst:             strerror
        - Src:             'src/civetweb.c:9776,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9783,3'
          Dst:             close
        - Src:             'src/civetweb.c:9788,2'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:9792,14'
          Dst:             connect
        - Src:             'src/civetweb.c:9814,13'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9854,7'
          Dst:             mg_poll
        - Src:             'src/civetweb.c:9860,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9868,4'
          Dst:             close
        - Src:             'src/civetweb.c:9876,9'
          Dst:             getsockopt
        - Src:             'src/civetweb.c:9888,32'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:9896,16'
          Dst:             strerror
        - Src:             'src/civetweb.c:9889,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:9898,3'
          Dst:             close
    - functionName:    socket
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    connect
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    uninitialize_openssl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18085
      functionLinenumberEnd: 18120
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_atomic_dec
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18088,6'
          Dst:             mg_atomic_dec
    - functionName:    mg_exit_library
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23233
      functionLinenumberEnd: 23271
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - mg_free
        - mg_global_lock
        - mg_global_unlock
        - pthread_key_delete
        - pthread_mutex_destroy
        - pthread_mutexattr_destroy
        - uninitialize_openssl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:23238,2'
          Dst:             mg_global_lock
        - Src:             'src/civetweb.c:23244,4'
          Dst:             uninitialize_openssl
        - Src:             'src/civetweb.c:23253,9'
          Dst:             pthread_mutexattr_destroy
        - Src:             'src/civetweb.c:23256,9'
          Dst:             pthread_key_delete
        - Src:             'src/civetweb.c:23261,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:23264,3'
          Dst:             mg_global_unlock
        - Src:             'src/civetweb.c:23265,9'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:23269,2'
          Dst:             mg_global_unlock
    - functionName:    mg_global_lock
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1115
      functionLinenumberEnd: 1117
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_lock
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:1116,8'
          Dst:             pthread_mutex_lock
    - functionName:    pthread_mutexattr_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_key_delete
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_global_unlock
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1123
      functionLinenumberEnd: 1125
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_mutex_unlock
      functionUses:    5
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:1124,8'
          Dst:             pthread_mutex_unlock
    - functionName:    initialize_openssl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17312
      functionLinenumberEnd: 17426
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         23
      ICount:          105
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - load_tls_dll
        - mg_atomic_inc
        - mg_snprintf
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17325,26'
          Dst:             load_tls_dll
        - Src:             'src/civetweb.c:17328,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:17341,6'
          Dst:             mg_atomic_inc
        - Src:             'src/civetweb.c:17401,7'
          Dst:             load_tls_dll
    - functionName:    tls_dtor
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16769
      functionLinenumberEnd: 16780
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         9
      ICount:          45
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - mg_free
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16776,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:16779,2'
          Dst:             pthread_setspecific
    - functionName:    mg_init_library
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 23103
      functionLinenumberEnd: 23227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         56
      ICount:          292
      EdgeCount:       73
      CyclomaticComplexity: 19
      functionsReached:
        - initialize_openssl
        - mg_check_feature
        - mg_global_lock
        - mg_global_unlock
        - mg_malloc
        - pthread_key_create
        - pthread_key_delete
        - pthread_mutex_destroy
        - pthread_mutex_init
        - pthread_mutexattr_destroy
        - pthread_mutexattr_init
        - pthread_mutexattr_settype
        - strcat
        - strcpy
        - strlen
        - tls_dtor
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:23104,30'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:23109,12'
          Dst:             pthread_mutex_init
        - Src:             'src/civetweb.c:23114,2'
          Dst:             mg_global_lock
        - Src:             'src/civetweb.c:23127,20'
          Dst:             pthread_key_create
        - Src:             'src/civetweb.c:23127,20'
          Dst:             tls_dtor
        - Src:             'src/civetweb.c:23139,21'
          Dst:             pthread_mutexattr_init
        - Src:             'src/civetweb.c:23141,14'
          Dst:             pthread_mutexattr_settype
        - Src:             'src/civetweb.c:23157,11'
          Dst:             pthread_mutexattr_destroy
        - Src:             'src/civetweb.c:23161,11'
          Dst:             pthread_key_delete
        - Src:             'src/civetweb.c:23163,4'
          Dst:             mg_global_unlock
        - Src:             'src/civetweb.c:23164,10'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:23170,16'
          Dst:             strlen
        - Src:             'src/civetweb.c:23176,25'
          Dst:             mg_malloc
        - Src:             'src/civetweb.c:23179,4'
          Dst:             mg_global_unlock
        - Src:             'src/civetweb.c:23180,10'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:23186,5'
          Dst:             strcat
        - Src:             'src/civetweb.c:23187,5'
          Dst:             strcat
        - Src:             'src/civetweb.c:23189,5'
          Dst:             strcpy
        - Src:             'src/civetweb.c:23205,8'
          Dst:             initialize_openssl
        - Src:             'src/civetweb.c:23224,2'
          Dst:             mg_global_unlock
    - functionName:    mg_check_feature
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22176
      functionLinenumberEnd: 22233
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_key_create
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutexattr_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutexattr_settype
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_disable_connection_keep_alive
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22798
      functionLinenumberEnd: 22803
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          20
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_context_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22599
      functionLinenumberEnd: 22791
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_str_append
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22239
      functionLinenumberEnd: 22250
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strcpy
        - strlen
      functionUses:    7
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:22240,15'
          Dst:             strlen
        - Src:             'src/civetweb.c:22244,4'
          Dst:             strcpy
    - functionName:    mg_get_system_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22258
      functionLinenumberEnd: 22591
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         18
      ICount:          212
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mg_check_feature
        - mg_snprintf
        - mg_str_append
        - mg_version
        - strcat
        - uname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:22283,24'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22287,25'
          Dst:             mg_version
        - Src:             'src/civetweb.c:22288,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22295,25'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22364,3'
          Dst:             uname
        - Src:             'src/civetweb.c:22366,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22376,25'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22389,30'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22391,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22392,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22393,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22394,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22395,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22397,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22398,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22399,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22400,15'
          Dst:             mg_check_feature
        - Src:             'src/civetweb.c:22382,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22401,25'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22450,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22453,25'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22499,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22509,25'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22562,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22582,25'
          Dst:             mg_str_append
        - Src:             'src/civetweb.c:22587,3'
          Dst:             strcat
    - functionName:    uname
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_start_domain
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 22168
      functionLinenumberEnd: 22169
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_start_domain2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:22169,9'
          Dst:             mg_start_domain2
    - functionName:    mg_start_domain2
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21968
      functionLinenumberEnd: 22163
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         78
      ICount:          527
      EdgeCount:       104
      CyclomaticComplexity: 28
      functionsReached:
        - get_option_index
        - get_random
        - init_ssl_ctx
        - mg_calloc
        - mg_cry_internal_wrap
        - mg_free
        - mg_lock_context
        - mg_snprintf
        - mg_strcasecmp
        - mg_strdup_ctx
        - mg_unlock_context
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21987,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22000,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22011,6'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:22018,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22030,9'
          Dst:             get_option_index
        - Src:             'src/civetweb.c:22032,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:22036,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22043,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:22046,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:22050,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22057,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:22062,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:22063,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:22065,26'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:22072,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:22076,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22083,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:22092,25'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:22099,29'
          Dst:             get_random
        - Src:             'src/civetweb.c:22099,45'
          Dst:             get_random
        - Src:             'src/civetweb.c:22106,7'
          Dst:             init_ssl_ctx
        - Src:             'src/civetweb.c:22110,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22117,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:22123,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:22128,8'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:22131,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:22136,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:22144,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:22145,4'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:22159,2'
          Dst:             mg_unlock_context
    - functionName:    mg_calloc
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1516
      functionLinenumberEnd: 1517
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    8
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:1517,9'
          Dst:             calloc
    - functionName:    get_option_index
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3232
      functionLinenumberEnd: 3241
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         10
      ICount:          54
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - strcmp
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3236,7'
          Dst:             strcmp
    - functionName:    get_random
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 6039
      functionLinenumberEnd: 6062
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_get_current_time_ns
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:6042,17'
          Dst:             mg_get_current_time_ns
        - Src:             'src/civetweb.c:6047,10'
          Dst:             mg_get_current_time_ns
        - Src:             'src/civetweb.c:6048,9'
          Dst:             mg_get_current_time_ns
    - functionName:    init_ssl_ctx
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 17976
      functionLinenumberEnd: 18080
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         48
      ICount:          294
      EdgeCount:       66
      CyclomaticComplexity: 20
      functionsReached:
        - init_ssl_ctx_impl
        - initialize_openssl
        - is_ssl_port_used
        - mg_cry_internal_wrap
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:17991,7'
          Dst:             is_ssl_port_used
        - Src:             'src/civetweb.c:18005,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18013,8'
          Dst:             initialize_openssl
        - Src:             'src/civetweb.c:18014,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18032,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18040,8'
          Dst:             initialize_openssl
        - Src:             'src/civetweb.c:18041,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18057,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18074,7'
          Dst:             initialize_openssl
        - Src:             'src/civetweb.c:18075,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18079,9'
          Dst:             init_ssl_ctx_impl
    - functionName:    calloc
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_start
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21953
      functionLinenumberEnd: 21959
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_start2
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21959,9'
          Dst:             mg_start2
    - functionName:    mg_start2
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21198
      functionLinenumberEnd: 21946
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         153
      ICount:          1205
      EdgeCount:       207
      CyclomaticComplexity: 56
      functionsReached:
        - __errno_location
        - atoi
        - free_context
        - get_option_index
        - get_random
        - get_system_name
        - init_ssl_ctx
        - legacy_init
        - master_thread
        - mg_atomic_inc
        - mg_calloc
        - mg_cry_internal_wrap
        - mg_free
        - mg_snprintf
        - mg_socketpair
        - mg_start_thread_with_id
        - mg_start_worker_thread
        - mg_strdup_ctx
        - pthread_cond_init
        - pthread_mutex_init
        - pthread_setspecific
        - set_acl_option
        - set_gpass_option
        - set_ports_option
        - set_uid_option
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21222,3'
          Dst:             legacy_init
        - Src:             'src/civetweb.c:21227,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21238,29'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:21243,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21255,16'
          Dst:             get_random
        - Src:             'src/civetweb.c:21260,38'
          Dst:             mg_atomic_inc
        - Src:             'src/civetweb.c:21266,2'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21268,13'
          Dst:             pthread_mutex_init
        - Src:             'src/civetweb.c:21270,14'
          Dst:             pthread_cond_init
        - Src:             'src/civetweb.c:21271,14'
          Dst:             pthread_cond_init
        - Src:             'src/civetweb.c:21274,14'
          Dst:             pthread_mutex_init
        - Src:             'src/civetweb.c:21284,12'
          Dst:             mg_socketpair
        - Src:             'src/civetweb.c:21288,33'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:21294,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21298,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21306,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:21307,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21330,9'
          Dst:             get_option_index
        - Src:             'src/civetweb.c:21332,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21336,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21344,4'
          Dst:             free_context
        - Src:             'src/civetweb.c:21345,4'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21349,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21353,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21361,4'
          Dst:             free_context
        - Src:             'src/civetweb.c:21362,4'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21368,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21369,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:21371,25'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:21379,24'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:21384,9'
          Dst:             atoi
        - Src:             'src/civetweb.c:21386,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21392,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21400,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21401,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21408,9'
          Dst:             atoi
        - Src:             'src/civetweb.c:21410,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21416,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21424,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21425,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21429,23'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:21431,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21437,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21445,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21446,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21453,22'
          Dst:             atoi
        - Src:             'src/civetweb.c:21454,24'
          Dst:             atoi
        - Src:             'src/civetweb.c:21464,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21466,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21471,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21479,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21480,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21505,2'
          Dst:             get_system_name
        - Src:             'src/civetweb.c:21600,7'
          Dst:             set_gpass_option
        - Src:             'src/civetweb.c:21603,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21607,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21614,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21615,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21642,7'
          Dst:             init_ssl_ctx
        - Src:             'src/civetweb.c:21645,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21649,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21657,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21658,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21663,7'
          Dst:             set_ports_option
        - Src:             'src/civetweb.c:21666,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21670,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21678,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21679,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21684,7'
          Dst:             set_uid_option
        - Src:             'src/civetweb.c:21687,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21691,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21699,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21700,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21705,7'
          Dst:             set_acl_option
        - Src:             'src/civetweb.c:21708,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21712,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21720,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21721,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21727,19'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:21733,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21739,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21747,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21748,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21752,30'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:21758,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21764,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21772,3'
          Dst:             free_context
        - Src:             'src/civetweb.c:21773,3'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21897,7'
          Dst:             mg_start_worker_thread
        - Src:             'src/civetweb.c:21898,26'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:21904,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21917,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:21924,6'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:21933,5'
          Dst:             free_context
        - Src:             'src/civetweb.c:21934,5'
          Dst:             pthread_setspecific
        - Src:             'src/civetweb.c:21942,2'
          Dst:             mg_start_thread_with_id
        - Src:             'src/civetweb.c:21942,2'
          Dst:             master_thread
        - Src:             'src/civetweb.c:21944,2'
          Dst:             pthread_setspecific
    - functionName:    legacy_init
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21061
      functionLinenumberEnd: 21084
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         15
      ICount:          76
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - is_ssl_port_used
        - mg_init_library
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21070,9'
          Dst:             strcmp
        - Src:             'src/civetweb.c:21077,6'
          Dst:             is_ssl_port_used
        - Src:             'src/civetweb.c:21079,3'
          Dst:             mg_init_library
        - Src:             'src/civetweb.c:21082,3'
          Dst:             mg_init_library
    - functionName:    pthread_cond_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_socketpair
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21093
      functionLinenumberEnd: 21110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - set_close_on_exec
        - socketpair
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21102,12'
          Dst:             socketpair
        - Src:             'src/civetweb.c:21106,3'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:21107,3'
          Dst:             set_close_on_exec
    - functionName:    free_context
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20851
      functionLinenumberEnd: 20958
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         34
      ICount:          243
      EdgeCount:       44
      CyclomaticComplexity: 12
      functionsReached:
        - close
        - mg_free
        - pthread_cond_destroy
        - pthread_mutex_destroy
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20867,8'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:20878,8'
          Dst:             pthread_cond_destroy
        - Src:             'src/civetweb.c:20879,8'
          Dst:             pthread_cond_destroy
        - Src:             'src/civetweb.c:20880,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20884,8'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:20892,3'
          Dst:             close
        - Src:             'src/civetweb.c:20895,3'
          Dst:             close
        - Src:             'src/civetweb.c:20904,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20912,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20913,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20948,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20951,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20954,2'
          Dst:             mg_free
        - Src:             'src/civetweb.c:20957,2'
          Dst:             mg_free
    - functionName:    get_system_name
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 21012
      functionLinenumberEnd: 21056
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_strdup
        - uname
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:21053,2'
          Dst:             uname
        - Src:             'src/civetweb.c:21054,13'
          Dst:             mg_strdup
    - functionName:    set_gpass_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18127
      functionLinenumberEnd: 18147
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         14
      ICount:          80
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - __errno_location
        - fake_connection
        - mg_cry_internal_wrap
        - mg_stat
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18137,19'
          Dst:             fake_connection
        - Src:             'src/civetweb.c:18137,11'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:18138,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:18138,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:18138,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    set_ports_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16159
      functionLinenumberEnd: 16489
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         56
      ICount:          464
      EdgeCount:       77
      CyclomaticComplexity: 23
      functionsReached:
        - __errno_location
        - bind
        - close
        - close_all_listening_sockets
        - getsockname
        - listen
        - mg_cry_internal_wrap
        - mg_free
        - mg_realloc
        - next_option
        - parse_port_string
        - set_close_on_exec
        - setsockopt
        - socket
        - strerror
        - strtol
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16188,17'
          Dst:             next_option
        - Src:             'src/civetweb.c:16192,8'
          Dst:             parse_port_string
        - Src:             'src/civetweb.c:16193,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16206,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16217,12'
          Dst:             socket
        - Src:             'src/civetweb.c:16222,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16256,7'
          Dst:             setsockopt
        - Src:             'src/civetweb.c:16264,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16312,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16313,4'
          Dst:             close
        - Src:             'src/civetweb.c:16326,8'
          Dst:             bind
        - Src:             'src/civetweb.c:16327,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16327,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16327,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:16327,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16333,5'
          Dst:             close
        - Src:             'src/civetweb.c:16384,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16388,4'
          Dst:             close
        - Src:             'src/civetweb.c:16394,24'
          Dst:             strtol
        - Src:             'src/civetweb.c:16396,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16400,4'
          Dst:             close
        - Src:             'src/civetweb.c:16405,7'
          Dst:             listen
        - Src:             'src/civetweb.c:16407,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16407,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16407,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:16407,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16413,4'
          Dst:             close
        - Src:             'src/civetweb.c:16418,8'
          Dst:             getsockname
        - Src:             'src/civetweb.c:16421,19'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16422,4'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16422,4'
          Dst:             strerror
        - Src:             'src/civetweb.c:16422,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16428,4'
          Dst:             close
        - Src:             'src/civetweb.c:16444,12'
          Dst:             mg_realloc
        - Src:             'src/civetweb.c:16450,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16451,4'
          Dst:             close
        - Src:             'src/civetweb.c:16462,12'
          Dst:             mg_realloc
        - Src:             'src/civetweb.c:16468,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16469,4'
          Dst:             close
        - Src:             'src/civetweb.c:16471,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:16475,3'
          Dst:             set_close_on_exec
        - Src:             'src/civetweb.c:16484,3'
          Dst:             close_all_listening_sockets
    - functionName:    set_uid_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 16715
      functionLinenumberEnd: 16762
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         27
      ICount:          135
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - __errno_location
        - getpwnam
        - getuid
        - mg_cry_internal_wrap
        - setgid
        - setgroups
        - setuid
        - strerror
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:16720,26'
          Dst:             getuid
        - Src:             'src/civetweb.c:16725,41'
          Dst:             getpwnam
        - Src:             'src/civetweb.c:16728,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16739,8'
          Dst:             setgid
        - Src:             'src/civetweb.c:16740,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16740,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:16740,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16745,15'
          Dst:             setgroups
        - Src:             'src/civetweb.c:16746,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16746,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:16746,5'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:16750,15'
          Dst:             setuid
        - Src:             'src/civetweb.c:16751,5'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:16751,5'
          Dst:             strerror
        - Src:             'src/civetweb.c:16751,5'
          Dst:             mg_cry_internal_wrap
    - functionName:    set_acl_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18153
      functionLinenumberEnd: 18161
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - check_acl
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18161,9'
          Dst:             check_acl
    - functionName:    master_thread
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20833
      functionLinenumberEnd: 20844
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - master_thread_run
        - sigaction
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20840,2'
          Dst:             sigaction
        - Src:             'src/civetweb.c:20843,2'
          Dst:             master_thread_run
    - functionName:    getuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    getpwnam
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setgid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setgroups
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setuid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    bind
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    listen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_cond_destroy
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    socketpair
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_stop
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 20963
      functionLinenumberEnd: 21007
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - close
        - free_context
        - mg_join_thread
        - usleep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:20983,2'
          Dst:             close
        - Src:             'src/civetweb.c:20994,9'
          Dst:             usleep
        - Src:             'src/civetweb.c:20998,2'
          Dst:             mg_join_thread
        - Src:             'src/civetweb.c:21006,2'
          Dst:             free_context
    - functionName:    mg_connect_websocket_client_secure_extensions
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19846
      functionLinenumberEnd: 19860
      functionDepth:   0
      returnType:      'N/A'
      argCount:        9
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          54
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_connect_websocket_client_impl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19850,9'
          Dst:             mg_connect_websocket_client_impl
    - functionName:    mg_connect_websocket_client_impl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19538
      functionLinenumberEnd: 19740
      functionDepth:   0
      returnType:      'N/A'
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_connect_websocket_client_extensions
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19816
      functionLinenumberEnd: 19831
      functionDepth:   0
      returnType:      'N/A'
      argCount:        11
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          51
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_connect_websocket_client_impl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19822,9'
          Dst:             mg_connect_websocket_client_impl
    - functionName:    mg_connect_websocket_client_secure
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19787
      functionLinenumberEnd: 19801
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_connect_websocket_client_impl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19791,9'
          Dst:             mg_connect_websocket_client_impl
    - functionName:    mg_connect_websocket_client
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19755
      functionLinenumberEnd: 19773
      functionDepth:   0
      returnType:      'N/A'
      argCount:        10
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          63
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_connect_websocket_client_impl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19764,9'
          Dst:             mg_connect_websocket_client_impl
    - functionName:    mg_download
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19394
      functionLinenumberEnd: 19435
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          123
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - get_response
        - mg_close_connection
        - mg_connect_client
        - mg_snprintf
        - mg_vprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19407,9'
          Dst:             mg_connect_client
        - Src:             'src/civetweb.c:19410,7'
          Dst:             mg_vprintf
        - Src:             'src/civetweb.c:19412,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19421,4'
          Dst:             get_response
        - Src:             'src/civetweb.c:19430,3'
          Dst:             mg_close_connection
    - functionName:    mg_connect_client
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18757
      functionLinenumberEnd: 18775
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_connect_client_impl
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18775,9'
          Dst:             mg_connect_client_impl
    - functionName:    get_response
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19251
      functionLinenumberEnd: 19331
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         38
      ICount:          253
      EdgeCount:       51
      CyclomaticComplexity: 15
      functionsReached:
        - get_header
        - get_message
        - mg_snprintf
        - mg_strcasecmp
        - parse_http_response
        - strtoll
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19257,7'
          Dst:             get_message
        - Src:             'src/civetweb.c:19261,6'
          Dst:             parse_http_response
        - Src:             'src/civetweb.c:19263,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19275,13'
          Dst:             get_header
        - Src:             'src/civetweb.c:19279,9'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:19280,7'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:19281,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19292,19'
          Dst:             get_header
        - Src:             'src/civetweb.c:19297,23'
          Dst:             strtoll
        - Src:             'src/civetweb.c:19299,4'
          Dst:             mg_snprintf
    - functionName:    mg_close_connection
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18434
      functionLinenumberEnd: 18493
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         19
      ICount:          107
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - close_connection
        - mg_free
        - pthread_mutex_destroy
      functionUses:    6
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18467,2'
          Dst:             close_connection
        - Src:             'src/civetweb.c:18489,9'
          Dst:             pthread_mutex_destroy
        - Src:             'src/civetweb.c:18490,3'
          Dst:             mg_free
    - functionName:    mg_connect_client_impl
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18501
      functionLinenumberEnd: 18732
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         57
      ICount:          518
      EdgeCount:       77
      CyclomaticComplexity: 22
      functionsReached:
        - __errno_location
        - atoi
        - close
        - connect_socket
        - getsockname
        - mg_calloc
        - mg_cry_internal_wrap
        - mg_free
        - mg_snprintf
        - pthread_mutex_init
        - ssl_error
        - ssl_use_pem_file
        - sslize
        - strerror
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18509,16'
          Dst:             atoi
        - Src:             'src/civetweb.c:18518,33'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:18537,25'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:18537,16'
          Dst:             strerror
        - Src:             'src/civetweb.c:18532,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:18559,7'
          Dst:             connect_socket
        - Src:             'src/civetweb.c:18568,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:18587,16'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:18582,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:18590,3'
          Dst:             close
        - Src:             'src/civetweb.c:18591,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:18632,6'
          Dst:             getsockname
        - Src:             'src/civetweb.c:18633,3'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:18633,3'
          Dst:             strerror
        - Src:             'src/civetweb.c:18633,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:18640,11'
          Dst:             pthread_mutex_init
        - Src:             'src/civetweb.c:18643,32'
          Dst:             __errno_location
        - Src:             'src/civetweb.c:18644,4'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:18654,3'
          Dst:             close
        - Src:             'src/civetweb.c:18655,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:18670,9'
          Dst:             ssl_use_pem_file
        - Src:             'src/civetweb.c:18676,6'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:18684,5'
          Dst:             close
        - Src:             'src/civetweb.c:18685,5'
          Dst:             mg_free
        - Src:             'src/civetweb.c:18702,18'
          Dst:             ssl_error
        - Src:             'src/civetweb.c:18697,6'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:18705,5'
          Dst:             close
        - Src:             'src/civetweb.c:18706,5'
          Dst:             mg_free
        - Src:             'src/civetweb.c:18714,8'
          Dst:             sslize
        - Src:             'src/civetweb.c:18717,5'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:18724,4'
          Dst:             close
        - Src:             'src/civetweb.c:18725,4'
          Dst:             mg_free
    - functionName:    mg_get_response
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 19339
      functionLinenumberEnd: 19383
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         12
      ICount:          124
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - get_response
        - mg_snprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:19350,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19366,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:19373,8'
          Dst:             get_response
    - functionName:    mg_connect_client_secure
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 18739
      functionLinenumberEnd: 18747
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_connect_client_impl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:18747,9'
          Dst:             mg_connect_client_impl
    - functionName:    mg_set_auth_handler
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14887
      functionLinenumberEnd: 14901
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_set_handler_type
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14888,2'
          Dst:             mg_set_handler_type
    - functionName:    mg_set_handler_type
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14638
      functionLinenumberEnd: 14807
      functionDepth:   0
      returnType:      void
      argCount:        13
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         109
      ICount:          562
      EdgeCount:       151
      CyclomaticComplexity: 44
      functionsReached:
        - mg_calloc
        - mg_cry_internal_wrap
        - mg_free
        - mg_lock_context
        - mg_strdup_ctx
        - mg_unlock_context
        - strcmp
        - strlen
        - usleep
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14640,18'
          Dst:             strlen
        - Src:             'src/civetweb.c:14703,2'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:14711,43'
          Dst:             strcmp
        - Src:             'src/civetweb.c:14717,8'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14718,8'
          Dst:             usleep
        - Src:             'src/civetweb.c:14719,8'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:14741,8'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14742,8'
          Dst:             usleep
        - Src:             'src/civetweb.c:14743,8'
          Dst:             mg_lock_context
        - Src:             'src/civetweb.c:14750,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:14751,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:14753,5'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14763,3'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14768,32'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:14772,3'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14773,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:14778,16'
          Dst:             mg_strdup_ctx
        - Src:             'src/civetweb.c:14780,3'
          Dst:             mg_unlock_context
        - Src:             'src/civetweb.c:14781,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:14782,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:14806,2'
          Dst:             mg_unlock_context
    - functionName:    mg_set_websocket_handler_with_subprotocols
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14862
      functionLinenumberEnd: 14879
      functionDepth:   0
      returnType:      void
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mg_set_handler_type
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14866,2'
          Dst:             mg_set_handler_type
    - functionName:    mg_set_websocket_handler
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14840
      functionLinenumberEnd: 14849
      functionDepth:   0
      returnType:      void
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          33
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_set_websocket_handler_with_subprotocols
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14841,2'
          Dst:             mg_set_websocket_handler_with_subprotocols
    - functionName:    mg_set_request_handler
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14815
      functionLinenumberEnd: 14829
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_set_handler_type
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:14816,2'
          Dst:             mg_set_handler_type
    - functionName:    unencoded_field_get
      functionSourceFile: '/src/civetweb/src/handle_form.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         6
      ICount:          60
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_url_decode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/handle_form.inl:150,6'
          Dst:             mg_url_decode
    - functionName:    search_boundary
      functionSourceFile: '/src/civetweb/src/handle_form.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 176
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         13
      ICount:          98
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - memcmp
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/handle_form.inl:178,30'
          Dst:             strlen
        - Src:             'src/handle_form.inl:186,8'
          Dst:             memcmp
        - Src:             'src/handle_form.inl:187,9'
          Dst:             memcmp
    - functionName:    field_stored
      functionSourceFile: '/src/civetweb/src/handle_form.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    url_encoded_field_get
      functionSourceFile: '/src/civetweb/src/handle_form.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 135
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         22
      ICount:          170
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - mg_cry_internal_wrap
        - mg_free
        - mg_malloc
        - mg_url_decode
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/handle_form.inl:100,28'
          Dst:             mg_malloc
        - Src:             'src/handle_form.inl:105,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:113,6'
          Dst:             mg_url_decode
        - Src:             'src/handle_form.inl:119,18'
          Dst:             mg_url_decode
        - Src:             'src/handle_form.inl:123,3'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:132,2'
          Dst:             mg_free
    - functionName:    url_encoded_field_found
      functionSourceFile: '/src/civetweb/src/handle_form.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         27
      ICount:          168
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - mg_cry_internal_wrap
        - mg_url_decode
        - remove_dot_segments
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'src/handle_form.inl:39,6'
          Dst:             mg_url_decode
        - Src:             'src/handle_form.inl:46,22'
          Dst:             mg_url_decode
        - Src:             'src/handle_form.inl:55,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:58,3'
          Dst:             remove_dot_segments
        - Src:             'src/handle_form.inl:69,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:77,4'
          Dst:             mg_cry_internal_wrap
    - functionName:    mg_handle_form_request
      functionSourceFile: '/src/civetweb/src/handle_form.inl'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 1146
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         398
      ICount:          2386
      EdgeCount:       542
      CyclomaticComplexity: 146
      functionsReached:
        - ferror
        - field_stored
        - fwrite
        - get_header
        - mg_cry_internal_wrap
        - mg_fclose
        - mg_fopen
        - mg_free
        - mg_get_header
        - mg_malloc
        - mg_read
        - mg_strncasecmp
        - parse_http_headers
        - remove_bad_file
        - search_boundary
        - strchr
        - strcmp
        - strcspn
        - strlen
        - strncmp
        - strstr
        - unencoded_field_get
        - url_encoded_field_found
        - url_encoded_field_get
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/handle_form.inl:232,12'
          Dst:             strcmp
        - Src:             'src/handle_form.inl:250,22'
          Dst:             strchr
        - Src:             'src/handle_form.inl:274,20'
          Dst:             url_encoded_field_found
        - Src:             'src/handle_form.inl:284,11'
          Dst:             strchr
        - Src:             'src/handle_form.inl:288,25'
          Dst:             strlen
        - Src:             'src/handle_form.inl:293,9'
          Dst:             url_encoded_field_get
        - Src:             'src/handle_form.inl:316,9'
          Dst:             mg_fopen
        - Src:             'src/handle_form.inl:322,10'
          Dst:             fwrite
        - Src:             'src/handle_form.inl:323,36'
          Dst:             ferror
        - Src:             'src/handle_form.inl:324,7'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:328,13'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:329,7'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:334,11'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:337,12'
          Dst:             field_stored
        - Src:             'src/handle_form.inl:345,8'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:349,8'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:355,6'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:390,17'
          Dst:             mg_get_header
        - Src:             'src/handle_form.inl:393,10'
          Dst:             mg_strncasecmp
        - Src:             'src/handle_form.inl:396,10'
          Dst:             mg_strncasecmp
        - Src:             'src/handle_form.inl:419,9'
          Dst:             mg_read
        - Src:             'src/handle_form.inl:439,10'
          Dst:             strchr
        - Src:             'src/handle_form.inl:450,20'
          Dst:             url_encoded_field_found
        - Src:             'src/handle_form.inl:468,9'
          Dst:             mg_fopen
        - Src:             'src/handle_form.inl:473,6'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:484,12'
          Dst:             strchr
        - Src:             'src/handle_form.inl:489,26'
          Dst:             strlen
        - Src:             'src/handle_form.inl:510,10'
          Dst:             url_encoded_field_get
        - Src:             'src/handle_form.inl:540,10'
          Dst:             fwrite
        - Src:             'src/handle_form.inl:541,36'
          Dst:             ferror
        - Src:             'src/handle_form.inl:542,7'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:546,7'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:547,7'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:563,11'
          Dst:             mg_read
        - Src:             'src/handle_form.inl:568,9'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:569,9'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:594,9'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:597,10'
          Dst:             field_stored
        - Src:             'src/handle_form.inl:604,6'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:608,6'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:628,7'
          Dst:             mg_strncasecmp
        - Src:             'src/handle_form.inl:651,7'
          Dst:             mg_strncasecmp
        - Src:             'src/handle_form.inl:659,8'
          Dst:             strlen
        - Src:             'src/handle_form.inl:660,22'
          Dst:             mg_malloc
        - Src:             'src/handle_form.inl:663,4'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:675,11'
          Dst:             strchr
        - Src:             'src/handle_form.inl:678,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:683,9'
          Dst:             strlen
        - Src:             'src/handle_form.inl:699,4'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:705,4'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:717,8'
          Dst:             mg_read
        - Src:             'src/handle_form.inl:720,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:731,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:751,15'
          Dst:             strncmp
        - Src:             'src/handle_form.inl:755,14'
          Dst:             strncmp
        - Src:             'src/handle_form.inl:769,31'
          Dst:             strncmp
        - Src:             'src/handle_form.inl:770,11'
          Dst:             strncmp
        - Src:             'src/handle_form.inl:772,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:787,8'
          Dst:             strncmp
        - Src:             'src/handle_form.inl:791,9'
          Dst:             strncmp
        - Src:             'src/handle_form.inl:793,6'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:803,11'
          Dst:             strstr
        - Src:             'src/handle_form.inl:806,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:811,8'
          Dst:             parse_http_headers
        - Src:             'src/handle_form.inl:814,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:823,19'
          Dst:             get_header
        - Src:             'src/handle_form.inl:828,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:834,11'
          Dst:             strstr
        - Src:             'src/handle_form.inl:835,30'
          Dst:             strcspn
        - Src:             'src/handle_form.inl:837,12'
          Dst:             strstr
        - Src:             'src/handle_form.inl:849,12'
          Dst:             strchr
        - Src:             'src/handle_form.inl:852,6'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:857,12'
          Dst:             strstr
        - Src:             'src/handle_form.inl:858,31'
          Dst:             strcspn
        - Src:             'src/handle_form.inl:860,13'
          Dst:             strstr
        - Src:             'src/handle_form.inl:864,6'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:876,19'
          Dst:             strcspn
        - Src:             'src/handle_form.inl:881,11'
          Dst:             strstr
        - Src:             'src/handle_form.inl:882,30'
          Dst:             strcspn
        - Src:             'src/handle_form.inl:884,12'
          Dst:             strstr
        - Src:             'src/handle_form.inl:894,12'
          Dst:             strchr
        - Src:             'src/handle_form.inl:899,6'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:908,12'
          Dst:             strstr
        - Src:             'src/handle_form.inl:909,31'
          Dst:             strcspn
        - Src:             'src/handle_form.inl:911,13'
          Dst:             strstr
        - Src:             'src/handle_form.inl:915,20'
          Dst:             strcspn
        - Src:             'src/handle_form.inl:932,5'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:939,20'
          Dst:             url_encoded_field_found
        - Src:             'src/handle_form.inl:950,11'
          Dst:             search_boundary
        - Src:             'src/handle_form.inl:958,9'
          Dst:             mg_fopen
        - Src:             'src/handle_form.inl:964,6'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:981,6'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:991,10'
          Dst:             unencoded_field_get
        - Src:             'src/handle_form.inl:1016,19'
          Dst:             fwrite
        - Src:             'src/handle_form.inl:1017,30'
          Dst:             ferror
        - Src:             'src/handle_form.inl:1018,8'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:1022,8'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:1023,8'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:1036,9'
          Dst:             mg_read
        - Src:             'src/handle_form.inl:1041,7'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:1042,7'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:1045,6'
          Dst:             mg_free
        - Src:             'src/handle_form.inl:1055,12'
          Dst:             search_boundary
        - Src:             'src/handle_form.inl:1067,9'
          Dst:             unencoded_field_get
        - Src:             'src/handle_form.inl:1090,18'
          Dst:             fwrite
        - Src:             'src/handle_form.inl:1091,29'
          Dst:             ferror
        - Src:             'src/handle_form.inl:1092,7'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:1096,7'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:1097,7'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:1100,11'
          Dst:             mg_fclose
        - Src:             'src/handle_form.inl:1103,12'
          Dst:             field_stored
        - Src:             'src/handle_form.inl:1110,8'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/handle_form.inl:1114,8'
          Dst:             remove_bad_file
        - Src:             'src/handle_form.inl:1140,3'
          Dst:             mg_free
    - functionName:    remove_bad_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10944
      functionLinenumberEnd: 10952
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mg_cry_internal_wrap
        - remove
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10945,10'
          Dst:             remove
        - Src:             'src/civetweb.c:10947,3'
          Dst:             mg_cry_internal_wrap
    - functionName:    mg_store_body
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10957
      functionLinenumberEnd: 11005
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         19
      ICount:          135
      EdgeCount:       26
      CyclomaticComplexity: 9
      functionsReached:
        - fwrite
        - mg_cry_internal_wrap
        - mg_fclose
        - mg_fopen
        - mg_read
        - put_dir
        - remove_bad_file
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10964,3'
          Dst:             mg_cry_internal_wrap
        - Src:             'src/civetweb.c:10968,8'
          Dst:             put_dir
        - Src:             'src/civetweb.c:10979,6'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:10983,8'
          Dst:             mg_read
        - Src:             'src/civetweb.c:10985,12'
          Dst:             fwrite
        - Src:             'src/civetweb.c:10987,10'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:10989,4'
          Dst:             remove_bad_file
        - Src:             'src/civetweb.c:10993,9'
          Dst:             mg_read
        - Src:             'src/civetweb.c:10999,6'
          Dst:             mg_fclose
        - Src:             'src/civetweb.c:11000,3'
          Dst:             remove_bad_file
    - functionName:    mg_send_mime_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10854
      functionLinenumberEnd: 10856
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_send_mime_file2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10855,2'
          Dst:             mg_send_mime_file2
    - functionName:    mg_send_mime_file2
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10864
      functionLinenumberEnd: 10896
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         17
      ICount:          94
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - handle_directory_request
        - handle_not_modified_static_file_request
        - handle_static_file_request
        - is_not_modified
        - mg_send_http_error
        - mg_stat
        - mg_strcasecmp
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10872,6'
          Dst:             mg_stat
        - Src:             'src/civetweb.c:10874,7'
          Dst:             is_not_modified
        - Src:             'src/civetweb.c:10876,4'
          Dst:             handle_not_modified_static_file_request
        - Src:             'src/civetweb.c:10880,9'
          Dst:             mg_strcasecmp
        - Src:             'src/civetweb.c:10882,5'
          Dst:             handle_directory_request
        - Src:             'src/civetweb.c:10884,5'
          Dst:             mg_send_http_error
        - Src:             'src/civetweb.c:10890,4'
          Dst:             handle_static_file_request
        - Src:             'src/civetweb.c:10894,3'
          Dst:             mg_send_http_error
    - functionName:    mg_send_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10845
      functionLinenumberEnd: 10847
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_send_mime_file2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10846,2'
          Dst:             mg_send_mime_file2
    - functionName:    mg_send_file_body
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 10782
      functionLinenumberEnd: 10791
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fclose_on_exec
        - mg_fclose
        - mg_fopen
        - send_file_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:10784,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:10787,2'
          Dst:             fclose_on_exec
        - Src:             'src/civetweb.c:10788,2'
          Dst:             send_file_data
        - Src:             'src/civetweb.c:10789,8'
          Dst:             mg_fclose
    - functionName:    mg_modify_passwords_file
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9542
      functionLinenumberEnd: 9553
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         16
      ICount:          84
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - mg_md5
        - mg_modify_passwords_file_ha1
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9548,10'
          Dst:             mg_modify_passwords_file_ha1
        - Src:             'src/civetweb.c:9551,2'
          Dst:             mg_md5
        - Src:             'src/civetweb.c:9552,9'
          Dst:             mg_modify_passwords_file_ha1
    - functionName:    mg_modify_passwords_file_ha1
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9379
      functionLinenumberEnd: 9534
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         100
      ICount:          551
      EdgeCount:       138
      CyclomaticComplexity: 40
      functionsReached:
        - __ctype_b_loc
        - __isoc99_sscanf
        - fchmod
        - fclose
        - fgets
        - fileno
        - fopen64
        - fprintf
        - fwrite
        - mg_calloc
        - mg_free
        - sprintf
        - stat64
        - strchr
        - strcmp
        - strlen
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9399,6'
          Dst:             strchr
        - Src:             'src/civetweb.c:9402,6'
          Dst:             strchr
        - Src:             'src/civetweb.c:9409,7'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:9417,7'
          Dst:             __ctype_b_loc
        - Src:             'src/civetweb.c:9426,6'
          Dst:             strlen
        - Src:             'src/civetweb.c:9431,11'
          Dst:             stat64
        - Src:             'src/civetweb.c:9442,23'
          Dst:             mg_calloc
        - Src:             'src/civetweb.c:9449,8'
          Dst:             fopen64
        - Src:             'src/civetweb.c:9452,4'
          Dst:             mg_free
        - Src:             'src/civetweb.c:9457,11'
          Dst:             fgets
        - Src:             'src/civetweb.c:9460,8'
          Dst:             __isoc99_sscanf
        - Src:             'src/civetweb.c:9467,9'
          Dst:             strcmp
        - Src:             'src/civetweb.c:9467,29'
          Dst:             strcmp
        - Src:             'src/civetweb.c:9471,10'
          Dst:             sprintf
        - Src:             'src/civetweb.c:9477,7'
          Dst:             fclose
        - Src:             'src/civetweb.c:9478,7'
          Dst:             mg_free
        - Src:             'src/civetweb.c:9486,9'
          Dst:             sprintf
        - Src:             'src/civetweb.c:9488,6'
          Dst:             fclose
        - Src:             'src/civetweb.c:9489,6'
          Dst:             mg_free
        - Src:             'src/civetweb.c:9495,3'
          Dst:             fclose
        - Src:             'src/civetweb.c:9499,7'
          Dst:             fopen64
        - Src:             'src/civetweb.c:9501,3'
          Dst:             mg_free
        - Src:             'src/civetweb.c:9507,13'
          Dst:             fileno
        - Src:             'src/civetweb.c:9507,6'
          Dst:             fchmod
        - Src:             'src/civetweb.c:9514,7'
          Dst:             fwrite
        - Src:             'src/civetweb.c:9522,7'
          Dst:             fprintf
        - Src:             'src/civetweb.c:9528,6'
          Dst:             fclose
        - Src:             'src/civetweb.c:9532,2'
          Dst:             mg_free
    - functionName:    fchmod
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_send_digest_access_authentication_request
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9342
      functionLinenumberEnd: 9348
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - send_authorization_request
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9344,3'
          Dst:             send_authorization_request
    - functionName:    mg_check_digest_access_authentication
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 9214
      functionLinenumberEnd: 9230
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         11
      ICount:          61
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - authorize
        - mg_fclose
        - mg_fopen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:9221,7'
          Dst:             mg_fopen
        - Src:             'src/civetweb.c:9225,9'
          Dst:             authorize
        - Src:             'src/civetweb.c:9227,2'
          Dst:             mg_fclose
    - functionName:    mg_base64_encode
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7549
      functionLinenumberEnd: 7594
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         32
      ICount:          251
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_cookie
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7500
      functionLinenumberEnd: 7541
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          244
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - mg_strcasestr
        - mg_strlcpy
        - strchr
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7513,18'
          Dst:             strlen
        - Src:             'src/civetweb.c:7514,12'
          Dst:             strlen
        - Src:             'src/civetweb.c:7515,14'
          Dst:             mg_strcasestr
        - Src:             'src/civetweb.c:7520,14'
          Dst:             strchr
        - Src:             'src/civetweb.c:7532,6'
          Dst:             mg_strlcpy
    - functionName:    mg_split_form_urlencoded
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7400
      functionLinenumberEnd: 7491
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         64
      ICount:          350
      EdgeCount:       85
      CyclomaticComplexity: 23
      functionsReached:
        - strchr
        - url_decode_in_place
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7467,7'
          Dst:             strchr
        - Src:             'src/civetweb.c:7482,4'
          Dst:             url_decode_in_place
        - Src:             'src/civetweb.c:7485,4'
          Dst:             url_decode_in_place
    - functionName:    mg_get_var2
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7345
      functionLinenumberEnd: 7392
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         43
      ICount:          228
      EdgeCount:       57
      CyclomaticComplexity: 16
      functionsReached:
        - memchr
        - mg_strncasecmp
        - mg_url_decode
        - strlen
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7356,14'
          Dst:             strlen
        - Src:             'src/civetweb.c:7364,12'
          Dst:             mg_strncasecmp
        - Src:             'src/civetweb.c:7369,23'
          Dst:             memchr
        - Src:             'src/civetweb.c:7379,11'
          Dst:             mg_url_decode
    - functionName:    mg_get_var
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7333
      functionLinenumberEnd: 7334
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_get_var2
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7334,9'
          Dst:             mg_get_var2
    - functionName:    mg_send_chunk
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 7098
      functionLinenumberEnd: 7128
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         10
      ICount:          89
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - mg_write
        - sprintf
        - strlen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:7105,2'
          Dst:             sprintf
        - Src:             'src/civetweb.c:7106,15'
          Dst:             strlen
        - Src:             'src/civetweb.c:7109,8'
          Dst:             mg_write
        - Src:             'src/civetweb.c:7115,8'
          Dst:             mg_write
        - Src:             'src/civetweb.c:7121,8'
          Dst:             mg_write
    - functionName:    mg_start_thread
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 5830
      functionLinenumberEnd: 5849
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_attr_destroy
        - pthread_attr_init
        - pthread_attr_setdetachstate
        - pthread_attr_setstacksize
        - pthread_create
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:5835,8'
          Dst:             pthread_attr_init
        - Src:             'src/civetweb.c:5836,8'
          Dst:             pthread_attr_setdetachstate
        - Src:             'src/civetweb.c:5843,8'
          Dst:             pthread_attr_setstacksize
        - Src:             'src/civetweb.c:5846,11'
          Dst:             pthread_create
        - Src:             'src/civetweb.c:5847,2'
          Dst:             pthread_attr_destroy
    - functionName:    pthread_attr_setdetachstate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_send_http_ok
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 4708
      functionLinenumberEnd: 4742
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         18
      ICount:          97
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - mg_response_header_add
        - mg_response_header_send
        - mg_response_header_start
        - mg_snprintf
        - send_additional_header
        - send_cors_header
        - send_no_cache_header
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:4714,2'
          Dst:             mg_response_header_start
        - Src:             'src/civetweb.c:4715,2'
          Dst:             send_no_cache_header
        - Src:             'src/civetweb.c:4716,2'
          Dst:             send_additional_header
        - Src:             'src/civetweb.c:4717,2'
          Dst:             send_cors_header
        - Src:             'src/civetweb.c:4718,2'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4723,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4728,3'
          Dst:             mg_snprintf
        - Src:             'src/civetweb.c:4737,4'
          Dst:             mg_response_header_add
        - Src:             'src/civetweb.c:4740,2'
          Dst:             mg_response_header_send
    - functionName:    mg_get_response_info
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3636
      functionLinenumberEnd: 3644
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_cry
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3576
      functionLinenumberEnd: 3581
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_cry_internal_impl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3579,2'
          Dst:             mg_cry_internal_impl
    - functionName:    mg_get_server_ports
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3323
      functionLinenumberEnd: 3358
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         23
      ICount:          227
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - ntohs
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3340,7'
          Dst:             ntohs
    - functionName:    mg_get_user_connection_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3311
      functionLinenumberEnd: 3316
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_thread_pointer
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3282
      functionLinenumberEnd: 3293
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pthread_getspecific
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3290,30'
          Dst:             pthread_getspecific
    - functionName:    pthread_getspecific
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_user_context_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3275
      functionLinenumberEnd: 3276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_get_context
        - mg_get_user_data
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3276,26'
          Dst:             mg_get_context
        - Src:             'src/civetweb.c:3276,9'
          Dst:             mg_get_user_data
    - functionName:    mg_get_context
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3261
      functionLinenumberEnd: 3262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          21
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_user_data
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3268
      functionLinenumberEnd: 3269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         4
      ICount:          21
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mg_get_option
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 3246
      functionLinenumberEnd: 3255
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         11
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - get_option_index
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'src/civetweb.c:3248,11'
          Dst:             get_option_index
    - functionName:    mg_get_valid_options
      functionSourceFile: '/src/civetweb/src/civetweb.c'
      linkageType:     InternalLinkage
      functionLinenumber: 2906
      functionLinenumberEnd: 2907
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    test_civetweb_client
      functionSourceFile: '/src/civetweb/fuzztest/fuzzmain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 212
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         36
      ICount:          227
      EdgeCount:       48
      CyclomaticComplexity: 14
      functionsReached:
        - fprintf
        - mg_close_connection
        - mg_connect_client
        - mg_get_response
        - mg_get_response_info
        - mg_printf
        - mg_read
        - sleep
        - strcmp
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzztest/fuzzmain.c:138,11'
          Dst:             mg_connect_client
        - Src:             'fuzztest/fuzzmain.c:141,32'
          Dst:             strcmp
        - Src:             'fuzztest/fuzzmain.c:142,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:149,4'
          Dst:             mg_close_connection
        - Src:             'fuzztest/fuzzmain.c:154,3'
          Dst:             sleep
        - Src:             'fuzztest/fuzzmain.c:157,12'
          Dst:             mg_connect_client
        - Src:             'fuzztest/fuzzmain.c:160,4'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:163,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:166,2'
          Dst:             mg_printf
        - Src:             'fuzztest/fuzzmain.c:168,6'
          Dst:             mg_get_response
        - Src:             'fuzztest/fuzzmain.c:170,23'
          Dst:             strcmp
        - Src:             'fuzztest/fuzzmain.c:171,3'
          Dst:             mg_close_connection
        - Src:             'fuzztest/fuzzmain.c:175,14'
          Dst:             mg_get_response_info
        - Src:             'fuzztest/fuzzmain.c:177,3'
          Dst:             mg_close_connection
        - Src:             'fuzztest/fuzzmain.c:185,7'
          Dst:             mg_read
        - Src:             'fuzztest/fuzzmain.c:197,9'
          Dst:             mg_read
        - Src:             'fuzztest/fuzzmain.c:204,6'
          Dst:             mg_read
        - Src:             'fuzztest/fuzzmain.c:206,3'
          Dst:             mg_close_connection
        - Src:             'fuzztest/fuzzmain.c:210,2'
          Dst:             mg_close_connection
    - functionName:    civetweb_exit
      functionSourceFile: '/src/civetweb/fuzztest/fuzzmain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - mg_stop
        - printf
        - sleep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzztest/fuzzmain.c:64,2'
          Dst:             printf
        - Src:             'fuzztest/fuzzmain.c:65,2'
          Dst:             mg_stop
        - Src:             'fuzztest/fuzzmain.c:67,2'
          Dst:             sleep
    - functionName:    printf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LLVMFuzzerTestOneInput_URI
      functionSourceFile: '/src/civetweb/fuzztest/fuzzmain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         7
      ICount:          41
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - test_civetweb_client
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzztest/fuzzmain.c:226,9'
          Dst:             test_civetweb_client
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/civetweb/fuzztest/fuzzmain.c'
      linkageType:     externalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 506
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - LLVMFuzzerTestOneInput_URI
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzztest/fuzzmain.c:505,2'
          Dst:             LLVMFuzzerTestOneInput_URI
    - functionName:    civetweb_init
      functionSourceFile: '/src/civetweb/fuzztest/fuzzmain.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          81
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - abort
        - atexit
        - civetweb_exit
        - fprintf
        - mg_get_server_ports
        - mg_start
        - printf
        - sleep
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzztest/fuzzmain.c:79,8'
          Dst:             mg_start
        - Src:             'fuzztest/fuzzmain.c:82,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:83,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:83,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:83,3'
          Dst:             abort
        - Src:             'fuzztest/fuzzmain.c:86,12'
          Dst:             mg_get_server_ports
        - Src:             'fuzztest/fuzzmain.c:88,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:90,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:90,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:90,3'
          Dst:             abort
        - Src:             'fuzztest/fuzzmain.c:93,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:96,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:96,3'
          Dst:             fprintf
        - Src:             'fuzztest/fuzzmain.c:96,3'
          Dst:             abort
        - Src:             'fuzztest/fuzzmain.c:100,2'
          Dst:             printf
        - Src:             'fuzztest/fuzzmain.c:106,2'
          Dst:             sleep
        - Src:             'fuzztest/fuzzmain.c:107,2'
          Dst:             atexit
        - Src:             'fuzztest/fuzzmain.c:107,2'
          Dst:             civetweb_exit
    - functionName:    abort
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    atexit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    LLVMFuzzerInitialize
      functionSourceFile: '/src/civetweb/fuzztest/fuzzmain.c'
      linkageType:     externalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 120
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - civetweb_init
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'fuzztest/fuzzmain.c:119,2'
          Dst:             civetweb_init
...
