---
Fuzzer filename: '/src/FreeRDP/libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c'
All functions:
  Function list name: All functions
  Elements:
    - functionName:    LLVMFuzzerTestOneInput
      functionSourceFile: '/src/FreeRDP/libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c'
      linkageType:     externalLinkage
      functionLinenumber: 6
      functionLinenumberEnd: 21
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - Data
        - Size
      BBCount:         8
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - freerdp_certificate_data_free
        - freerdp_certificate_data_new_from_pem
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:9,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:10,3'
              BranchSideFuncs:
                - freerdp_certificate_data_free
                - free
            - BranchSide:      'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:11,9'
              BranchSideFuncs:
                - freerdp_certificate_data_new_from_pem
                - freerdp_certificate_data_free
                - free
        - Branch String:   'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:14,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:14,7'
              BranchSideFuncs:
                - freerdp_certificate_data_free
                - free
            - BranchSide:      'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:15,3'
              BranchSideFuncs:
                - freerdp_certificate_data_free
                - free
      Callsites:
        - Src:             'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:8,14'
          Dst:             calloc
        - Src:             'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:13,9'
          Dst:             freerdp_certificate_data_new_from_pem
        - Src:             'libfreerdp/core/test/TestFuzzCryptoCertificateDataSetPEM.c:18,2'
          Dst:             freerdp_certificate_data_free
    - 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:    99
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_load_cache
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
      BBCount:         21
      ICount:          153
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - calloc
        - freerdp_certificate_data_hash_
        - freerdp_certificate_get_fingerprint
        - freerdp_certificate_get_issuer
        - freerdp_certificate_get_pem_ex
        - freerdp_certificate_get_subject
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:75,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:75,2'
              BranchSideFuncs:
                - freerdp_certificate_data_hash_
                - strnlen
                - freerdp_certificate_get_subject
                - calloc
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:77,33'
              BranchSideFuncs:
                - freerdp_certificate_data_hash_
                - strnlen
                - freerdp_certificate_get_subject
                - calloc
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:79,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:80,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:82,57'
              BranchSideFuncs:
                - freerdp_certificate_get_subject
                - calloc
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:83,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:84,26'
              BranchSideFuncs:
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:86,9'
              BranchSideFuncs:
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:88,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:89,3'
              BranchSideFuncs:
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:91,9'
              BranchSideFuncs:
                - freerdp_certificate_get_pem_ex
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:93,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:94,3'
              BranchSideFuncs:
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:96,65'
              BranchSideFuncs:
                - freerdp_certificate_get_fingerprint
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:97,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:98,3'
              BranchSideFuncs:
                - freerdp_certificate_get_issuer
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:100,55'
              BranchSideFuncs:
                - freerdp_certificate_get_issuer
                - calloc
        - Branch String:   'libfreerdp/crypto/certificate_data.c:101,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:102,25'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:104,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:75,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate_data.c:77,2'
          Dst:             freerdp_certificate_data_hash_
        - Src:             'libfreerdp/crypto/certificate_data.c:79,6'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:82,25'
          Dst:             freerdp_certificate_get_subject
        - Src:             'libfreerdp/crypto/certificate_data.c:84,26'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_data.c:87,21'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_data.c:92,27'
          Dst:             freerdp_certificate_get_pem_ex
        - Src:             'libfreerdp/crypto/certificate_data.c:96,29'
          Dst:             freerdp_certificate_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:100,24'
          Dst:             freerdp_certificate_get_issuer
        - Src:             'libfreerdp/crypto/certificate_data.c:102,25'
          Dst:             calloc
    - functionName:    __assert_fail
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    549
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_hash_
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hostname
        - port
        - name
        - length
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ensure_lowercase
        - snprintf
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:67,8'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate_data.c:68,9'
          Dst:             ensure_lowercase
    - functionName:    strnlen
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    26
      BranchProfiles:  []
      Callsites:       []
    - functionName:    snprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    46
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ensure_lowercase
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 62
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - length
      BBCount:         7
      ICount:          55
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached:
        - strnlen
        - tolower
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:60,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:61,20'
              BranchSideFuncs:
                - tolower
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:62,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:59,21'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/certificate_data.c:61,12'
          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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - hostname
        - port
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _strdup
        - freerdp_certificate_data_hash_
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:277,2'
          Dst:             freerdp_certificate_data_hash_
        - Src:             'libfreerdp/crypto/certificate_data.c:278,9'
          Dst:             _strdup
    - functionName:    freerdp_certificate_data_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:268,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:269,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:271,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_equal
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         20
      ICount:          115
      EdgeCount:       24
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - freerdp_certificate_data_get_fingerprint
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:248,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:248,2'
              BranchSideFuncs:
                - __assert_fail
                - strcmp
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:249,2'
              BranchSideFuncs:
                - __assert_fail
                - strcmp
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
        - Branch String:   'libfreerdp/crypto/certificate_data.c:249,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:249,2'
              BranchSideFuncs:
                - strcmp
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:251,13'
              BranchSideFuncs:
                - strcmp
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
        - Branch String:   'libfreerdp/crypto/certificate_data.c:251,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:252,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:253,6'
              BranchSideFuncs:
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
        - Branch String:   'libfreerdp/crypto/certificate_data.c:253,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:254,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:256,62'
              BranchSideFuncs:
                - freerdp_certificate_data_get_fingerprint
                - freerdp_certificate_data_get_fingerprint
                - strcmp
        - Branch String:   'libfreerdp/crypto/certificate_data.c:258,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:258,14'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:261,8'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate_data.c:258,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:259,15'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:261,8'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:248,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate_data.c:249,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate_data.c:251,6'
          Dst:             strcmp
        - Src:             'libfreerdp/crypto/certificate_data.c:256,21'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:257,21'
          Dst:             freerdp_certificate_data_get_fingerprint
        - Src:             'libfreerdp/crypto/certificate_data.c:259,8'
          Dst:             strcmp
    - 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:    19
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 237
      functionLinenumberEnd: 242
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:238,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:239,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:241,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:231,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:232,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:234,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:223,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:224,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:226,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_pem_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - withFullChain
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:214,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:215,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:216,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate_data.c:216,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:217,10'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:218,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 208
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_data_get_pem_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:209,9'
          Dst:             freerdp_certificate_data_get_pem_ex
    - functionName:    freerdp_certificate_data_get_port
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 205
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:202,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:203,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:204,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_get_host
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         4
      ICount:          25
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:195,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:196,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:197,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    freerdp_certificate_data_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_free
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:179,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:180,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:182,7'
              BranchSideFuncs:
                - free
                - freerdp_certificate_free
                - free
                - free
                - free
                - free
                - free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:183,2'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - hostname
        - port
        - file
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - freerdp_certificate_data_new_nocopy
        - freerdp_certificate_free
        - freerdp_certificate_new_from_file
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:167,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:168,3'
              BranchSideFuncs:
                - freerdp_certificate_new_from_file
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:170,59'
              BranchSideFuncs:
                - freerdp_certificate_new_from_file
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:172,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:173,28'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:174,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:170,25'
          Dst:             freerdp_certificate_new_from_file
        - Src:             'libfreerdp/crypto/certificate_data.c:171,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:173,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new_nocopy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 139
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - hostname
        - port
        - xcert
      BBCount:         16
      ICount:          102
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - _strdup
        - calloc
        - ensure_lowercase
        - freerdp_certificate_data_free
        - freerdp_certificate_data_load_cache
        - strlen
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:114,16'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:114,20'
              BranchSideFuncs:
                - freerdp_certificate_data_free
                - calloc
                - _strdup
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:115,3'
              BranchSideFuncs:
                - freerdp_certificate_data_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:114,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:115,3'
              BranchSideFuncs:
                - calloc
                - freerdp_certificate_data_free
                - _strdup
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:117,34'
              BranchSideFuncs:
                - calloc
                - freerdp_certificate_data_free
                - _strdup
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
        - Branch String:   'libfreerdp/crypto/certificate_data.c:119,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:120,3'
              BranchSideFuncs:
                - _strdup
                - freerdp_certificate_data_free
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:122,19'
              BranchSideFuncs:
                - _strdup
                - freerdp_certificate_data_free
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
        - Branch String:   'libfreerdp/crypto/certificate_data.c:124,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:125,3'
              BranchSideFuncs:
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
                - freerdp_certificate_data_free
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:126,19'
              BranchSideFuncs:
                - strlen
                - ensure_lowercase
                - freerdp_certificate_data_load_cache
                - freerdp_certificate_data_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:129,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:131,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:135,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:117,34'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate_data.c:123,23'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/certificate_data.c:126,39'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate_data.c:126,2'
          Dst:             ensure_lowercase
        - Src:             'libfreerdp/crypto/certificate_data.c:129,7'
          Dst:             freerdp_certificate_data_load_cache
        - Src:             'libfreerdp/crypto/certificate_data.c:137,2'
          Dst:             freerdp_certificate_data_free
    - 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:    71
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_data_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - hostname
        - port
        - pem
        - length
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - freerdp_certificate_data_new_nocopy
        - freerdp_certificate_free
        - freerdp_certificate_new_from_pem
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:154,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:154,15'
              BranchSideFuncs:
                - freerdp_certificate_new_from_pem
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:155,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate_data.c:154,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:155,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:157,58'
              BranchSideFuncs:
                - freerdp_certificate_new_from_pem
                - freerdp_certificate_data_new_nocopy
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate_data.c:159,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:160,28'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:161,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:157,25'
          Dst:             freerdp_certificate_new_from_pem
        - Src:             'libfreerdp/crypto/certificate_data.c:158,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:160,3'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_data_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate_data.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - hostname
        - port
        - xcert
      BBCount:         6
      ICount:          46
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - freerdp_certificate_clone
        - freerdp_certificate_data_new_nocopy
        - freerdp_certificate_free
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate_data.c:146,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:146,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate_data.c:147,28'
              BranchSideFuncs:
                - freerdp_certificate_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate_data.c:144,25'
          Dst:             freerdp_certificate_clone
        - Src:             'libfreerdp/crypto/certificate_data.c:145,29'
          Dst:             freerdp_certificate_data_new_nocopy
        - Src:             'libfreerdp/crypto/certificate_data.c:147,3'
          Dst:             freerdp_certificate_free
    - functionName:    sk_X509_free
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_free
    - functionName:    OPENSSL_sk_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_blob_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1071
      functionLinenumberEnd: 1086
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - src
      BBCount:         15
      ICount:          90
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - cert_blob_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1072,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1072,2'
              BranchSideFuncs:
                - __assert_fail
                - cert_blob_free
                - malloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1073,2'
              BranchSideFuncs:
                - __assert_fail
                - cert_blob_free
                - malloc
        - Branch String:   'libfreerdp/crypto/certificate.c:1073,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1073,2'
              BranchSideFuncs:
                - cert_blob_free
                - malloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1075,17'
              BranchSideFuncs:
                - cert_blob_free
                - malloc
        - Branch String:   'libfreerdp/crypto/certificate.c:1076,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1078,22'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1085,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1079,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1080,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1081,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1072,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1073,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1075,2'
          Dst:             cert_blob_free
    - functionName:    cert_blob_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 278
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - blob
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:273,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:274,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:275,7'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    cert_x509_chain_copy
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1089
      functionLinenumberEnd: 1119
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - src
      BBCount:         20
      ICount:          128
      EdgeCount:       25
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - calloc
        - cert_blob_copy
        - certificate_free_x509_certificate_chain
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1090,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1090,2'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1092,42'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
        - Branch String:   'libfreerdp/crypto/certificate.c:1093,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1094,3'
              BranchSideFuncs:
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1096,6'
              BranchSideFuncs:
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
        - Branch String:   'libfreerdp/crypto/certificate.c:1096,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1098,24'
              BranchSideFuncs:
                - calloc
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1118,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1099,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1101,4'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1103,17'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
        - Branch String:   'libfreerdp/crypto/certificate.c:1105,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1107,34'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1116,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1110,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1112,45'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1115,3'
              BranchSideFuncs:
                - cert_blob_copy
                - certificate_free_x509_certificate_chain
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1090,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1092,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1098,17'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1110,9'
          Dst:             cert_blob_copy
        - Src:             'libfreerdp/crypto/certificate.c:1112,5'
          Dst:             certificate_free_x509_certificate_chain
    - functionName:    certificate_free_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 473
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509_cert_chain
      BBCount:         13
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - cert_blob_free
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:460,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:461,3'
              BranchSideFuncs:
                - free
                - cert_blob_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:463,6'
              BranchSideFuncs:
                - free
                - cert_blob_free
        - Branch String:   'libfreerdp/crypto/certificate.c:463,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:465,15'
              BranchSideFuncs:
                - free
                - cert_blob_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:472,7'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:465,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:467,28'
              BranchSideFuncs:
                - cert_blob_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:470,2'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:468,4'
          Dst:             cert_blob_free
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:147,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:147,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:148,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:148,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:148,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:150,19'
              BranchSideFuncs:
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:151,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:151,7'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:152,16'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:147,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:148,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:148,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:152,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    certificate_read_x509_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 433
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - info
      BBCount:         87
      ICount:          447
      EdgeCount:       116
      CyclomaticComplexity: 31
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - Stream_StaticConstInit
        - WLog_Get
        - __assert_fail
        - ber_read_bit_string
        - ber_read_contextual_tag
        - ber_read_integer
        - ber_read_integer_length
        - ber_read_sequence_tag
        - cert_info_free
        - cert_info_read_exponent
        - cert_info_read_modulus
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:304,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:304,2'
              BranchSideFuncs:
                - __assert_fail
                - cert_info_free
                - Stream_StaticConstInit
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:305,2'
              BranchSideFuncs:
                - __assert_fail
                - cert_info_free
                - Stream_StaticConstInit
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:305,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:305,2'
              BranchSideFuncs:
                - cert_info_free
                - Stream_StaticConstInit
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:307,17'
              BranchSideFuncs:
                - cert_info_free
                - Stream_StaticConstInit
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:311,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:312,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:314,29'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:314,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:315,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:317,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_contextual_tag
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:319,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:320,3'
              BranchSideFuncs:
                - ber_read_contextual_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:322,7'
              BranchSideFuncs:
                - ber_read_contextual_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:324,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:325,3'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:327,7'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:329,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:330,3'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:332,7'
              BranchSideFuncs:
                - ber_read_integer
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:336,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:337,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:339,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:342,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:343,7'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:344,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:342,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:344,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:346,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:349,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:349,45'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:350,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:349,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:350,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:352,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:355,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:355,45'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:356,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:355,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:356,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:358,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:361,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:361,45'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:362,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:361,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:362,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:364,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:367,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:368,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:370,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_SafeSeekEx
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:373,41'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:374,7'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_bit_string
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:375,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:373,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:375,3'
              BranchSideFuncs:
                - ber_read_bit_string
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:377,7'
              BranchSideFuncs:
                - ber_read_bit_string
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_sequence_tag
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:380,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:381,3'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:383,7'
              BranchSideFuncs:
                - ber_read_sequence_tag
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:386,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:387,3'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:389,7'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:391,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:392,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:394,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:399,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:400,4'
              BranchSideFuncs:
                - stream_read_u8
                - cert_info_read_modulus
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:402,3'
              BranchSideFuncs:
                - stream_read_u8
                - cert_info_read_modulus
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:404,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:406,9'
              BranchSideFuncs:
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
            - BranchSide:      'libfreerdp/crypto/certificate.c:411,2'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:406,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:407,5'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:409,18'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/certificate.c:411,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:399,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - stream_read_u8
                - cert_info_read_modulus
                - ber_read_integer_length
                - cert_info_read_exponent
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/certificate.c:413,7'
              BranchSideFuncs:
                - cert_info_read_modulus
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - ber_read_integer_length
                - cert_info_read_exponent
        - Branch String:   'libfreerdp/crypto/certificate.c:415,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:416,3'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - cert_info_read_exponent
            - BranchSide:      'libfreerdp/crypto/certificate.c:418,7'
              BranchSideFuncs:
                - ber_read_integer_length
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
                - cert_info_read_exponent
        - Branch String:   'libfreerdp/crypto/certificate.c:420,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:421,3'
              BranchSideFuncs:
                - cert_info_read_exponent
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:423,7'
              BranchSideFuncs:
                - cert_info_read_exponent
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:425,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:426,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:427,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:429,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:429,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:429,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cert_info_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:429,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:429,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - cert_info_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:429,2'
              BranchSideFuncs:
                - cert_info_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:304,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:305,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:307,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/certificate.c:309,6'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/crypto/certificate.c:314,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:319,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:324,7'
          Dst:             ber_read_contextual_tag
        - Src:             'libfreerdp/crypto/certificate.c:329,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/crypto/certificate.c:336,7'
          Dst:             ber_read_integer
        - Src:             'libfreerdp/crypto/certificate.c:342,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:343,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:349,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:349,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:355,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:355,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:361,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:361,45'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:367,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:373,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:374,7'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:380,7'
          Dst:             ber_read_bit_string
        - Src:             'libfreerdp/crypto/certificate.c:386,7'
          Dst:             ber_read_sequence_tag
        - Src:             'libfreerdp/crypto/certificate.c:391,7'
          Dst:             ber_read_integer_length
        - Src:             'libfreerdp/crypto/certificate.c:399,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:402,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/certificate.c:406,9'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/certificate.c:415,7'
          Dst:             cert_info_read_modulus
        - Src:             'libfreerdp/crypto/certificate.c:420,7'
          Dst:             ber_read_integer_length
        - Src:             'libfreerdp/crypto/certificate.c:425,7'
          Dst:             cert_info_read_exponent
        - Src:             'libfreerdp/crypto/certificate.c:429,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:429,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:429,2'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:431,2'
          Dst:             cert_info_free
    - functionName:    cert_blob_read
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 257
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - blob
        - s
      BBCount:         18
      ICount:          96
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - __assert_fail
        - cert_blob_free
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:232,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:232,2'
              BranchSideFuncs:
                - cert_blob_free
                - Stream_CheckAndLogRequiredLengthEx
                - cert_blob_free
                - stream_read_u32_le
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:233,17'
              BranchSideFuncs:
                - cert_blob_free
                - Stream_CheckAndLogRequiredLengthEx
                - cert_blob_free
                - stream_read_u32_le
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read
        - Branch String:   'libfreerdp/crypto/certificate.c:235,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:236,3'
              BranchSideFuncs:
                - stream_read_u32_le
                - Stream_CheckAndLogRequiredLengthEx
                - cert_blob_free
                - malloc
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:238,2'
              BranchSideFuncs:
                - stream_read_u32_le
                - Stream_CheckAndLogRequiredLengthEx
                - cert_blob_free
                - malloc
                - Stream_Read
        - Branch String:   'libfreerdp/crypto/certificate.c:240,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:241,3'
              BranchSideFuncs:
                - malloc
                - cert_blob_free
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:243,2'
              BranchSideFuncs:
                - malloc
                - cert_blob_free
                - Stream_Read
        - Branch String:   'libfreerdp/crypto/certificate.c:246,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:247,3'
              BranchSideFuncs:
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:249,14'
              BranchSideFuncs:
                - Stream_Read
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:232,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:233,2'
          Dst:             cert_blob_free
        - Src:             'libfreerdp/crypto/certificate.c:235,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:238,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:240,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:249,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:255,2'
          Dst:             cert_blob_free
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:217,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:217,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:218,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:218,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:218,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:220,21'
              BranchSideFuncs:
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:224,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:224,7'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:225,16'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:217,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:218,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:218,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:225,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:577,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:577,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:579,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:577,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:578,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:581,3'
          Dst:             Stream_Seek
    - functionName:    certificate_new_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 450
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - count
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:447,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:447,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:448,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:445,40'
          Dst:             calloc
    - functionName:    update_x509_from_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 508
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         40
      ICount:          196
      EdgeCount:       51
      CyclomaticComplexity: 13
      functionsReached:
        - BN_bin2bn
        - BN_free
        - BN_new
        - RSA_free
        - RSA_new
        - RSA_set0_key
        - WLog_Get
        - X509_free
        - __assert_fail
        - x509_from_rsa
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:511,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:511,2'
              BranchSideFuncs:
                - X509_free
                - BN_new
                - BN_new
                - RSA_new
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:513,12'
              BranchSideFuncs:
                - X509_free
                - BN_new
                - BN_new
                - RSA_new
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
        - Branch String:   'libfreerdp/crypto/certificate.c:522,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:523,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:526,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
        - Branch String:   'libfreerdp/crypto/certificate.c:526,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:526,15'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:527,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:526,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:527,3'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:528,17'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - BN_bin2bn
                - RSA_set0_key
                - x509_from_rsa
        - Branch String:   'libfreerdp/crypto/certificate.c:528,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:529,3'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - RSA_set0_key
                - x509_from_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:530,17'
              BranchSideFuncs:
                - BN_bin2bn
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
                - RSA_set0_key
                - x509_from_rsa
        - Branch String:   'libfreerdp/crypto/certificate.c:530,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:531,3'
              BranchSideFuncs:
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:534,31'
              BranchSideFuncs:
                - RSA_set0_key
                - x509_from_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:535,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:536,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:538,29'
              BranchSideFuncs:
                - x509_from_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:568,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:569,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:571,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:574,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:575,3'
              BranchSideFuncs:
                - BN_free
                - BN_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:578,6'
              BranchSideFuncs:
                - BN_free
                - BN_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:575,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:575,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:575,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BN_free
                - BN_free
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:575,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:575,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - BN_free
                - BN_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:575,3'
              BranchSideFuncs:
                - BN_free
                - BN_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:578,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:579,12'
              BranchSideFuncs:
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:583,11'
              BranchSideFuncs:
                - BN_free
                - BN_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:511,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:513,2'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:518,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/certificate.c:519,16'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/certificate.c:521,13'
          Dst:             RSA_new
        - Src:             'libfreerdp/crypto/certificate.c:528,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/certificate.c:530,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/certificate.c:534,18'
          Dst:             RSA_set0_key
        - Src:             'libfreerdp/crypto/certificate.c:538,15'
          Dst:             x509_from_rsa
        - Src:             'libfreerdp/crypto/certificate.c:575,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:575,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:575,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:579,3'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:583,3'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/certificate.c:584,3'
          Dst:             BN_free
    - functionName:    X509_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_bin2bn
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_set0_key
      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:    RSA_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    certificate_process_server_public_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 655
      functionLinenumberEnd: 739
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - certificate
        - sigdata
        - sigdatalen
        - s
        - siglen
      BBCount:         9
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Read
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:656,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:656,2'
              BranchSideFuncs:
                - Stream_Read
            - BranchSide:      'libfreerdp/crypto/certificate.c:665,8'
              BranchSideFuncs:
                - Stream_Read
        - Branch String:   'libfreerdp/crypto/certificate.c:683,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:684,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:738,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:656,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:681,2'
          Dst:             Stream_Read
    - functionName:    certificate_process_server_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 650
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - s
        - length
      BBCount:         90
      ICount:          380
      EdgeCount:       107
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - Stream_Seek
        - WLog_Get
        - __assert_fail
        - cert_info_free
        - memcmp
        - realloc
        - stream_read_u32_le
        - update_x509_from_info
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:596,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:596,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Read
                - memcmp
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:597,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Read
                - memcmp
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:597,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:597,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Read
                - memcmp
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:599,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Read
                - memcmp
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:599,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:600,3'
              BranchSideFuncs:
                - Stream_Read
                - memcmp
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:602,14'
              BranchSideFuncs:
                - Stream_Read
                - memcmp
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:604,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:606,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:610,23'
              BranchSideFuncs:
                - cert_info_free
                - stream_read_u32_le
                - stream_read_u32_le
                - stream_read_u32_le
                - Stream_Read
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:606,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:606,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:606,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:606,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:606,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:606,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:618,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:620,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:623,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:620,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:620,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:620,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:620,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:620,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:620,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:623,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:624,3'
              BranchSideFuncs:
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:625,6'
              BranchSideFuncs:
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:625,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:627,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:631,6'
              BranchSideFuncs:
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:627,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:627,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:627,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:627,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:627,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:627,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:631,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:633,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:637,24'
              BranchSideFuncs:
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:633,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:633,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:633,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:633,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:633,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:633,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:640,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:642,3'
              BranchSideFuncs:
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:645,18'
              BranchSideFuncs:
                - Stream_Read
                - Stream_Seek
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:642,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:642,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:642,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:642,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:642,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:642,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:596,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:597,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:599,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:602,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:604,6'
          Dst:             memcmp
        - Src:             'libfreerdp/crypto/certificate.c:606,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:606,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:606,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:611,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/certificate.c:613,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:614,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:615,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:616,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:620,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:620,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:620,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:623,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:627,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:627,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:627,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:633,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:633,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:633,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:638,14'
          Dst:             realloc
        - Src:             'libfreerdp/crypto/certificate.c:642,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:642,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:642,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:647,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/certificate.c:648,2'
          Dst:             Stream_Seek
        - Src:             'libfreerdp/crypto/certificate.c:649,9'
          Dst:             update_x509_from_info
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:169,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:169,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:170,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:170,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:170,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:172,20'
              BranchSideFuncs:
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:174,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:174,7'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:175,16'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:169,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:170,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:170,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:175,4'
          Dst:             Stream_Seek
    - functionName:    cert_blob_write
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 260
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - blob
        - s
      BBCount:         9
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT32
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:261,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:261,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - Stream_Write
            - BranchSide:      'libfreerdp/crypto/certificate.c:263,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - Stream_Write
        - Branch String:   'libfreerdp/crypto/certificate.c:263,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:264,3'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - Stream_Write
            - BranchSide:      'libfreerdp/crypto/certificate.c:266,22'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - Stream_Write
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:261,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:263,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:266,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:267,2'
          Dst:             Stream_Write
    - functionName:    Stream_Write_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          90
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:735,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:735,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:736,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:736,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:736,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:737,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:736,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:767,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:767,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:769,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:770,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:771,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:772,11'
              BranchSideFuncs:
                - Stream_Seek
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:769,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:770,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:773,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _n
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:813,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:813,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek
        - Branch String:   'winpr/include/winpr/stream.h:814,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - Stream_Seek
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:813,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:814,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:814,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:816,3'
          Dst:             Stream_Seek
    - functionName:    cert_write_rsa_signature
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 848
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - sigData
        - sigDataLen
      BBCount:         8
      ICount:          70
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16
        - Stream_Zero
        - crypto_rsa_private_encrypt
        - winpr_Digest
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:853,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:854,3'
              BranchSideFuncs:
                - crypto_rsa_private_encrypt
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:856,29'
              BranchSideFuncs:
                - crypto_rsa_private_encrypt
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:859,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:860,3'
              BranchSideFuncs:
                - Stream_Write_UINT16
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:861,22'
              BranchSideFuncs:
                - Stream_Write_UINT16
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Zero
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:853,7'
          Dst:             winpr_Digest
        - Src:             'libfreerdp/crypto/certificate.c:856,2'
          Dst:             crypto_rsa_private_encrypt
        - Src:             'libfreerdp/crypto/certificate.c:859,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:861,2'
          Dst:             Stream_Write_UINT16
        - Src:             'libfreerdp/crypto/certificate.c:862,2'
          Dst:             Stream_Write_UINT16
        - Src:             'libfreerdp/crypto/certificate.c:863,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:864,2'
          Dst:             Stream_Zero
    - functionName:    Stream_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:695,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:695,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:696,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:697,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:695,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:696,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             __assert_fail
    - functionName:    cert_write_rsa_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 819
      functionLinenumberEnd: 845
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - cert
      BBCount:         15
      ICount:          139
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write
        - Stream_Write_UINT16
        - Stream_Write_UINT32
        - Stream_Zero
        - __assert_fail
        - freerdp_certificate_is_rsa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:820,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:820,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - __assert_fail
                - __assert_fail
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:821,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - __assert_fail
                - __assert_fail
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:821,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:821,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:823,29'
              BranchSideFuncs:
                - __assert_fail
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:833,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:833,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:834,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:834,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:835,3'
              BranchSideFuncs:
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:836,22'
              BranchSideFuncs:
                - Stream_Write_UINT16
                - Stream_Write
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write
                - Stream_Write
                - Stream_Zero
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:820,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:821,2'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:821,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:833,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:834,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:836,2'
          Dst:             Stream_Write_UINT16
        - Src:             'libfreerdp/crypto/certificate.c:837,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:838,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:839,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:840,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:841,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:842,2'
          Dst:             Stream_Write
        - Src:             'libfreerdp/crypto/certificate.c:843,2'
          Dst:             Stream_Zero
    - functionName:    freerdp_certificate_is_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1698
      functionLinenumberEnd: 1700
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - is_rsa_key
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1699,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1699,2'
              BranchSideFuncs:
                - is_rsa_key
            - BranchSide:      'libfreerdp/crypto/certificate.c:1699,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1699,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1700,9'
          Dst:             is_rsa_key
    - functionName:    is_rsa_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_PKEY_id
        - X509_get0_pubkey
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:287,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:288,3'
              BranchSideFuncs:
                - EVP_PKEY_id
            - BranchSide:      'libfreerdp/crypto/certificate.c:290,22'
              BranchSideFuncs:
                - EVP_PKEY_id
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:286,18'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:290,10'
          Dst:             EVP_PKEY_id
    - functionName:    X509_get0_pubkey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_id
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:856,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:856,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:856,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:856,3'
          Dst:             __assert_fail
    - functionName:    freerdp_certificate_get_RSA
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1655
      functionLinenumberEnd: 1666
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         11
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_PKEY_get1_RSA
        - X509_get0_pubkey
        - __assert_fail
        - freerdp_certificate_is_rsa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1656,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1656,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
            - BranchSide:      'libfreerdp/crypto/certificate.c:1658,34'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
        - Branch String:   'libfreerdp/crypto/certificate.c:1658,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1659,3'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
            - BranchSide:      'libfreerdp/crypto/certificate.c:1661,38'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_get1_RSA
        - Branch String:   'libfreerdp/crypto/certificate.c:1662,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1663,3'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
            - BranchSide:      'libfreerdp/crypto/certificate.c:1665,27'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1656,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1658,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1661,21'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1665,9'
          Dst:             EVP_PKEY_get1_RSA
    - functionName:    EVP_PKEY_get1_RSA
      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:    freerdp_certificate_get_param
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1716
      functionLinenumberEnd: 1771
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - what
        - psize
      BBCount:         17
      ICount:          110
      EdgeCount:       17
      CyclomaticComplexity: 2
      functionsReached:
        - BN_bn2bin
        - BN_num_bits
        - RSA_free
        - RSA_get0_key
        - __assert_fail
        - calloc
        - freerdp_certificate_get_RSA
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1717,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1717,2'
              BranchSideFuncs:
                - __assert_fail
                - freerdp_certificate_get_RSA
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - RSA_get0_key
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1718,2'
              BranchSideFuncs:
                - __assert_fail
                - freerdp_certificate_get_RSA
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - RSA_get0_key
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1718,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1718,2'
              BranchSideFuncs:
                - freerdp_certificate_get_RSA
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - RSA_get0_key
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1720,3'
              BranchSideFuncs:
                - freerdp_certificate_get_RSA
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - calloc
                - BN_bn2bin
                - RSA_get0_key
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1725,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1728,17'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - calloc
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1731,17'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - BN_num_bits
                - calloc
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1734,13'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1761,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1762,3'
              BranchSideFuncs:
                - BN_bn2bin
            - BranchSide:      'libfreerdp/crypto/certificate.c:1763,12'
              BranchSideFuncs:
                - BN_bn2bin
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1717,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1718,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1724,13'
          Dst:             freerdp_certificate_get_RSA
        - Src:             'libfreerdp/crypto/certificate.c:1728,4'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1731,4'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1734,4'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:1737,2'
          Dst:             RSA_free
        - Src:             'libfreerdp/crypto/certificate.c:1759,24'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/certificate.c:1760,13'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1763,2'
          Dst:             BN_bn2bin
    - functionName:    RSA_get0_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_num_bits
      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:    BN_bn2bin
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_is_rdp_security_compatible
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1704
      functionLinenumberEnd: 1712
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         23
      ICount:          91
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - freerdp_certificate_get_info
        - freerdp_certificate_is_rsa
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1706,40'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1706,44'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1706,49'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1706,53'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1706,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1711,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1708,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1708,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1708,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1705,28'
          Dst:             freerdp_certificate_get_info
        - Src:             'libfreerdp/crypto/certificate.c:1706,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1708,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1708,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1708,3'
          Dst:             WLog_PrintMessage
    - functionName:    freerdp_certificate_get_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1313
      functionLinenumberEnd: 1318
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         9
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - freerdp_certificate_is_rsa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1314,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1314,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
            - BranchSide:      'libfreerdp/crypto/certificate.c:1315,34'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
        - Branch String:   'libfreerdp/crypto/certificate.c:1315,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1316,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1317,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1314,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1315,7'
          Dst:             freerdp_certificate_is_rsa
    - functionName:    freerdp_certificate_get_der
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1670
      functionLinenumberEnd: 1695
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - pLength
      BBCount:         19
      ICount:          112
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - calloc
        - i2d_X509
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1671,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1671,2'
              BranchSideFuncs:
                - i2d_X509
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1673,6'
              BranchSideFuncs:
                - i2d_X509
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1673,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1674,4'
              BranchSideFuncs:
                - i2d_X509
                - calloc
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1676,26'
              BranchSideFuncs:
                - i2d_X509
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1677,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1678,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1680,21'
              BranchSideFuncs:
                - calloc
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1681,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1682,3'
              BranchSideFuncs:
                - i2d_X509
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1683,18'
              BranchSideFuncs:
                - i2d_X509
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1686,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1688,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1692,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1692,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1693,22'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1694,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1671,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1676,17'
          Dst:             i2d_X509
        - Src:             'libfreerdp/crypto/certificate.c:1680,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1685,18'
          Dst:             i2d_X509
    - functionName:    i2d_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_publickey_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1614
      functionLinenumberEnd: 1651
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - input
        - cbInput
        - poutput
        - pcbOutput
      BBCount:         42
      ICount:          203
      EdgeCount:       50
      CyclomaticComplexity: 10
      functionsReached:
        - EVP_PKEY_CTX_free
        - EVP_PKEY_CTX_new
        - EVP_PKEY_encrypt
        - EVP_PKEY_encrypt_init
        - EVP_PKEY_size
        - RSA_pkey_ctx_ctrl
        - WLog_Get
        - X509_get0_pubkey
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1615,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1615,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1616,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1616,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1616,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1617,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1617,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1617,2'
              BranchSideFuncs:
                - __assert_fail
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1618,2'
              BranchSideFuncs:
                - __assert_fail
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1618,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1618,2'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1620,7'
              BranchSideFuncs:
                - X509_get0_pubkey
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1623,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1624,3'
              BranchSideFuncs:
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1626,39'
              BranchSideFuncs:
                - EVP_PKEY_CTX_new
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1627,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1628,3'
              BranchSideFuncs:
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1630,36'
              BranchSideFuncs:
                - EVP_PKEY_size
                - malloc
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1632,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1633,3'
              BranchSideFuncs:
                - EVP_PKEY_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1634,15'
              BranchSideFuncs:
                - EVP_PKEY_encrypt_init
                - RSA_pkey_ctx_ctrl
                - EVP_PKEY_encrypt
                - EVP_PKEY_CTX_free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1636,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1637,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1637,64'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1638,23'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1636,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1644,13'
              BranchSideFuncs:
                - EVP_PKEY_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1640,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - EVP_PKEY_CTX_free
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1640,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - EVP_PKEY_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1640,3'
              BranchSideFuncs:
                - EVP_PKEY_CTX_free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1615,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1616,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1617,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1618,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1622,19'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1626,22'
          Dst:             EVP_PKEY_CTX_new
        - Src:             'libfreerdp/crypto/certificate.c:1630,22'
          Dst:             EVP_PKEY_size
        - Src:             'libfreerdp/crypto/certificate.c:1636,6'
          Dst:             EVP_PKEY_encrypt_init
        - Src:             'libfreerdp/crypto/certificate.c:1637,6'
          Dst:             RSA_pkey_ctx_ctrl
        - Src:             'libfreerdp/crypto/certificate.c:1638,6'
          Dst:             EVP_PKEY_encrypt
        - Src:             'libfreerdp/crypto/certificate.c:1640,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1640,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1640,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1648,2'
          Dst:             EVP_PKEY_CTX_free
    - functionName:    EVP_PKEY_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_size
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_encrypt_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:    RSA_pkey_ctx_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_encrypt
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1607
      functionLinenumberEnd: 1609
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1608,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1608,2'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1608,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1608,2'
          Dst:             __assert_fail
    - functionName:    freerdp_certificate_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1601
      functionLinenumberEnd: 1603
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - hash
        - plength
      BBCount:         6
      ICount:          38
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_hash
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1602,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1602,2'
              BranchSideFuncs:
                - x509_utils_get_hash
            - BranchSide:      'libfreerdp/crypto/certificate.c:1602,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1602,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1603,16'
          Dst:             x509_utils_get_hash
    - functionName:    freerdp_certificate_free_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1596
      functionLinenumberEnd: 1598
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - count
        - lengths
        - names
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - x509_utils_dns_names_free
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1597,2'
          Dst:             x509_utils_dns_names_free
    - functionName:    freerdp_certificate_get_signature_alg
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1590
      functionLinenumberEnd: 1592
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_signature_alg
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1591,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1591,2'
              BranchSideFuncs:
                - x509_utils_get_signature_alg
            - BranchSide:      'libfreerdp/crypto/certificate.c:1591,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1591,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1592,9'
          Dst:             x509_utils_get_signature_alg
    - functionName:    freerdp_certificate_get_common_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1584
      functionLinenumberEnd: 1586
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - plength
      BBCount:         6
      ICount:          34
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_common_name
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1585,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1585,2'
              BranchSideFuncs:
                - x509_utils_get_common_name
            - BranchSide:      'libfreerdp/crypto/certificate.c:1585,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1585,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1586,9'
          Dst:             x509_utils_get_common_name
    - functionName:    freerdp_certificate_get_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1578
      functionLinenumberEnd: 1580
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - pcount
        - pplengths
      BBCount:         6
      ICount:          38
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_dns_names
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1579,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1579,2'
              BranchSideFuncs:
                - x509_utils_get_dns_names
            - BranchSide:      'libfreerdp/crypto/certificate.c:1579,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1579,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1580,9'
          Dst:             x509_utils_get_dns_names
    - functionName:    freerdp_certificate_verify
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1571
      functionLinenumberEnd: 1573
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - certificate_store_path
      BBCount:         6
      ICount:          37
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_verify
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1572,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1572,2'
              BranchSideFuncs:
                - x509_utils_verify
            - BranchSide:      'libfreerdp/crypto/certificate.c:1572,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1572,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1573,9'
          Dst:             x509_utils_verify
    - functionName:    freerdp_certificate_get_public_key
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1527
      functionLinenumberEnd: 1567
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - PublicKey
        - PublicKeyLength
      BBCount:         42
      ICount:          187
      EdgeCount:       51
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_Get
        - X509_get0_pubkey
        - __assert_fail
        - calloc
        - i2d_PublicKey
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1534,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1534,2'
              BranchSideFuncs:
                - X509_get0_pubkey
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - i2d_PublicKey
                - calloc
                - i2d_PublicKey
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1536,26'
              BranchSideFuncs:
                - X509_get0_pubkey
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - i2d_PublicKey
                - calloc
                - i2d_PublicKey
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1538,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,3'
              BranchSideFuncs:
                - i2d_PublicKey
                - calloc
                - free
                - i2d_PublicKey
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1544,25'
              BranchSideFuncs:
                - i2d_PublicKey
                - calloc
                - free
                - i2d_PublicKey
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1540,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1540,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1540,3'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1546,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1548,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1552,42'
              BranchSideFuncs:
                - calloc
                - free
                - i2d_PublicKey
        - Branch String:   'libfreerdp/crypto/certificate.c:1548,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1548,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1548,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1548,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1548,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1548,3'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1554,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1555,3'
              BranchSideFuncs:
                - i2d_PublicKey
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1557,36'
              BranchSideFuncs:
                - i2d_PublicKey
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1558,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1559,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1560,28'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1564,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1564,6'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1565,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1534,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1536,9'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1540,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1540,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1540,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1544,11'
          Dst:             i2d_PublicKey
        - Src:             'libfreerdp/crypto/certificate.c:1548,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1548,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1548,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1552,35'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1557,22'
          Dst:             i2d_PublicKey
    - functionName:    i2d_PublicKey
      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:    freerdp_certificate_check_eku
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1520
      functionLinenumberEnd: 1522
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - nid
      BBCount:         6
      ICount:          34
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_check_eku
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1521,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1521,2'
              BranchSideFuncs:
                - x509_utils_check_eku
            - BranchSide:      'libfreerdp/crypto/certificate.c:1521,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1521,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1522,9'
          Dst:             x509_utils_check_eku
    - functionName:    freerdp_certificate_get_validity
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1514
      functionLinenumberEnd: 1516
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - startDate
      BBCount:         6
      ICount:          34
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_date
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1515,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1515,2'
              BranchSideFuncs:
                - x509_utils_get_date
            - BranchSide:      'libfreerdp/crypto/certificate.c:1515,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1515,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1516,9'
          Dst:             x509_utils_get_date
    - functionName:    freerdp_certificate_get_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1508
      functionLinenumberEnd: 1510
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_email
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1509,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1509,2'
              BranchSideFuncs:
                - x509_utils_get_email
            - BranchSide:      'libfreerdp/crypto/certificate.c:1509,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1509,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1510,9'
          Dst:             x509_utils_get_email
    - functionName:    freerdp_certificate_get_upn
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1502
      functionLinenumberEnd: 1504
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_upn
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1503,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1503,2'
              BranchSideFuncs:
                - x509_utils_get_upn
            - BranchSide:      'libfreerdp/crypto/certificate.c:1503,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1503,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1504,9'
          Dst:             x509_utils_get_upn
    - functionName:    freerdp_certificate_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1496
      functionLinenumberEnd: 1498
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_issuer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1497,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1497,2'
              BranchSideFuncs:
                - x509_utils_get_issuer
            - BranchSide:      'libfreerdp/crypto/certificate.c:1497,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1497,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1498,9'
          Dst:             x509_utils_get_issuer
    - functionName:    freerdp_certificate_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1490
      functionLinenumberEnd: 1492
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - x509_utils_get_subject
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1491,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1491,2'
              BranchSideFuncs:
                - x509_utils_get_subject
            - BranchSide:      'libfreerdp/crypto/certificate.c:1491,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1491,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1492,9'
          Dst:             x509_utils_get_subject
    - functionName:    bio_read_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1388
      functionLinenumberEnd: 1427
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - bio
        - ppem
        - plength
      BBCount:         37
      ICount:          185
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - BIO_read
        - ERR_clear_error
        - WLog_Get
        - __assert_fail
        - realloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1391,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1391,2'
              BranchSideFuncs:
                - __assert_fail
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1392,2'
              BranchSideFuncs:
                - __assert_fail
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1392,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1392,2'
              BranchSideFuncs:
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1394,9'
              BranchSideFuncs:
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1397,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1399,23'
              BranchSideFuncs:
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1421,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1400,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1401,4'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1402,9'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - realloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1407,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1409,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1413,7'
              BranchSideFuncs:
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1409,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1409,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1409,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1409,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1409,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1409,4'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1413,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1414,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1416,21'
              BranchSideFuncs:
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1417,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1418,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1419,10'
              BranchSideFuncs:
                - realloc
                - ERR_clear_error
                - BIO_read
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1423,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1424,14'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1425,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1391,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1392,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1399,15'
          Dst:             realloc
        - Src:             'libfreerdp/crypto/certificate.c:1404,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/certificate.c:1406,22'
          Dst:             BIO_read
        - Src:             'libfreerdp/crypto/certificate.c:1409,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1409,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1409,4'
          Dst:             WLog_PrintMessage
    - functionName:    ERR_clear_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_read
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_value
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sk
        - idx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_value
    - functionName:    OPENSSL_sk_value
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_X509_num
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_num
    - functionName:    OPENSSL_sk_num
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_pem_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1437
      functionLinenumberEnd: 1487
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - pLength
        - withCertChain
      BBCount:         63
      ICount:          264
      EdgeCount:       77
      CyclomaticComplexity: 16
      functionsReached:
        - BIO_free_all
        - BIO_s_mem
        - PEM_write_bio_X509
        - WLog_Get
        - __assert_fail
        - bio_read_pem
        - sk_X509_num
        - sk_X509_value
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1439,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1439,2'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1441,7'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1441,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1442,3'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1444,7'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1453,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1455,3'
              BranchSideFuncs:
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1459,30'
              BranchSideFuncs:
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1455,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1455,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1455,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1455,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1455,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1455,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1461,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1463,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BIO_free_all
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1467,6'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1463,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1463,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - BIO_free_all
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1463,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BIO_free_all
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1463,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1463,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/certificate.c:1463,3'
              BranchSideFuncs:
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1467,18'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1467,21'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
                - sk_X509_num
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1482,20'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1467,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1469,27'
              BranchSideFuncs:
                - sk_X509_num
                - bio_read_pem
                - BIO_free_all
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1482,20'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1470,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1472,28'
              BranchSideFuncs:
                - sk_X509_value
                - PEM_write_bio_X509
                - bio_read_pem
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1480,2'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1474,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1476,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BIO_free_all
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1479,3'
              BranchSideFuncs:
                - bio_read_pem
                - BIO_free_all
                - sk_X509_value
                - PEM_write_bio_X509
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1476,5'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1476,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - BIO_free_all
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1476,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - BIO_free_all
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1476,5'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1476,5'
              BranchSideFuncs:
                - WLog_PrintMessage
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/certificate.c:1476,5'
              BranchSideFuncs:
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/certificate.c:1482,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1482,38'
              BranchSideFuncs:
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/certificate.c:1483,3'
              BranchSideFuncs:
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1439,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1451,16'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/certificate.c:1451,8'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/certificate.c:1455,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1455,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1455,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1459,11'
          Dst:             PEM_write_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1463,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1463,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1463,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1469,15'
          Dst:             sk_X509_num
        - Src:             'libfreerdp/crypto/certificate.c:1472,14'
          Dst:             sk_X509_value
        - Src:             'libfreerdp/crypto/certificate.c:1473,13'
          Dst:             PEM_write_bio_X509
        - Src:             'libfreerdp/crypto/certificate.c:1476,5'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1476,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1476,5'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1482,7'
          Dst:             bio_read_pem
        - Src:             'libfreerdp/crypto/certificate.c:1485,2'
          Dst:             BIO_free_all
    - functionName:    BIO_s_mem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_write_bio_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_free_all
      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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_certificate_get_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1431
      functionLinenumberEnd: 1432
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - pLength
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_get_pem_ex
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1432,9'
          Dst:             freerdp_certificate_get_pem_ex
    - functionName:    freerdp_certificate_get_fingerprint_by_hash_ex
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1332
      functionLinenumberEnd: 1385
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - cert
        - hash
        - separator
      BBCount:         54
      ICount:          289
      EdgeCount:       68
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - calloc
        - snprintf
        - x509_utils_get_hash
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1338,12'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1338,16'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1338,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1343,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1340,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1340,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1340,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1340,3'
              BranchSideFuncs:
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1343,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1345,3'
              BranchSideFuncs:
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1348,27'
              BranchSideFuncs:
                - x509_utils_get_hash
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1345,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1345,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1345,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1345,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1345,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1345,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1349,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1350,3'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1352,6'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1352,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1353,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1355,9'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - snprintf
                - free
                - snprintf
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1357,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1358,3'
              BranchSideFuncs:
                - snprintf
                - free
                - snprintf
                - free
                - free
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1360,6'
              BranchSideFuncs:
                - snprintf
                - free
                - snprintf
                - free
                - free
                - snprintf
        - Branch String:   'libfreerdp/crypto/certificate.c:1363,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1365,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
                - free
                - free
                - free
                - snprintf
            - BranchSide:      'libfreerdp/crypto/certificate.c:1376,19'
              BranchSideFuncs:
                - snprintf
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1367,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1368,19'
              BranchSideFuncs:
                - snprintf
                - snprintf
                - free
                - snprintf
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1370,19'
              BranchSideFuncs:
                - snprintf
                - snprintf
                - free
                - snprintf
                - free
                - free
        - Branch String:   'libfreerdp/crypto/certificate.c:1371,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1372,4'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1373,18'
              BranchSideFuncs:
                - snprintf
                - free
                - snprintf
                - free
                - free
                - snprintf
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1340,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1340,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1340,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1345,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1345,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1345,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1348,7'
          Dst:             x509_utils_get_hash
        - Src:             'libfreerdp/crypto/certificate.c:1356,14'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/certificate.c:1368,9'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate.c:1370,9'
          Dst:             snprintf
        - Src:             'libfreerdp/crypto/certificate.c:1376,8'
          Dst:             snprintf
    - functionName:    freerdp_certificate_get_fingerprint_by_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1326
      functionLinenumberEnd: 1327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - hash
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_get_fingerprint_by_hash_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1327,9'
          Dst:             freerdp_certificate_get_fingerprint_by_hash_ex
    - functionName:    freerdp_certificate_get_fingerprint
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1321
      functionLinenumberEnd: 1322
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_get_fingerprint_by_hash
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1322,9'
          Dst:             freerdp_certificate_get_fingerprint_by_hash
    - functionName:    freerdp_certificate_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1308
      functionLinenumberEnd: 1309
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pem
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_new_from
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1309,9'
          Dst:             freerdp_certificate_new_from
    - functionName:    freerdp_certificate_new_from
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1293
      functionLinenumberEnd: 1300
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - file
        - isFile
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - X509_free
        - freerdp_certificate_new_from_x509
        - strlen
        - x509_utils_from_pem
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1295,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1296,3'
              BranchSideFuncs:
                - freerdp_certificate_new_from_x509
                - X509_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1297,18'
              BranchSideFuncs:
                - freerdp_certificate_new_from_x509
                - X509_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1294,41'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/certificate.c:1294,15'
          Dst:             x509_utils_from_pem
        - Src:             'libfreerdp/crypto/certificate.c:1297,25'
          Dst:             freerdp_certificate_new_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1298,2'
          Dst:             X509_free
    - functionName:    freerdp_certificate_new_from_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1268
      functionLinenumberEnd: 1290
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
        - chain
      BBCount:         17
      ICount:          87
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - X509_dup
        - __assert_fail
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_rsa_from_x509
        - sk_X509_dup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1269,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1269,2'
              BranchSideFuncs:
                - freerdp_certificate_new
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1271,25'
              BranchSideFuncs:
                - freerdp_certificate_new
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_dup
        - Branch String:   'libfreerdp/crypto/certificate.c:1272,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1273,3'
              BranchSideFuncs:
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1275,24'
              BranchSideFuncs:
                - X509_dup
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
                - sk_X509_dup
        - Branch String:   'libfreerdp/crypto/certificate.c:1276,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1277,3'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
                - sk_X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1279,29'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
                - sk_X509_dup
        - Branch String:   'libfreerdp/crypto/certificate.c:1279,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1280,3'
              BranchSideFuncs:
                - sk_X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1282,6'
              BranchSideFuncs:
                - sk_X509_dup
        - Branch String:   'libfreerdp/crypto/certificate.c:1282,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1284,29'
              BranchSideFuncs:
                - sk_X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1286,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1269,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1271,25'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1275,15'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1279,7'
          Dst:             freerdp_rsa_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1284,17'
          Dst:             sk_X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1288,2'
          Dst:             freerdp_certificate_free
    - functionName:    freerdp_certificate_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1164
      functionLinenumberEnd: 1165
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1165,26'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1165,26'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/certificate.c:1165,26'
              BranchSideFuncs:
                - calloc
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1165,26'
          Dst:             calloc
    - functionName:    X509_dup
      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:    freerdp_rsa_from_x509
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1196
      functionLinenumberEnd: 1247
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         21
      ICount:          113
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - EVP_PKEY_get1_RSA
        - RSA_free
        - RSA_get0_key
        - X509_get0_pubkey
        - __assert_fail
        - cert_info_create
        - freerdp_certificate_is_rsa
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1199,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1199,2'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - X509_get0_pubkey
                - RSA_free
                - EVP_PKEY_get1_RSA
                - RSA_get0_key
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1201,34'
              BranchSideFuncs:
                - freerdp_certificate_is_rsa
                - X509_get0_pubkey
                - RSA_free
                - EVP_PKEY_get1_RSA
                - RSA_get0_key
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1201,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1202,3'
              BranchSideFuncs:
                - X509_get0_pubkey
                - RSA_free
                - EVP_PKEY_get1_RSA
                - RSA_get0_key
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1205,7'
              BranchSideFuncs:
                - X509_get0_pubkey
                - RSA_free
                - EVP_PKEY_get1_RSA
                - RSA_get0_key
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1213,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1214,3'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
                - RSA_free
                - RSA_get0_key
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1217,26'
              BranchSideFuncs:
                - EVP_PKEY_get1_RSA
                - RSA_free
                - RSA_get0_key
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1221,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1222,3'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1225,5'
              BranchSideFuncs:
                - RSA_get0_key
                - RSA_free
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/certificate.c:1234,13'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1234,17'
              BranchSideFuncs:
                - RSA_free
                - cert_info_create
            - BranchSide:      'libfreerdp/crypto/certificate.c:1235,3'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1234,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1235,3'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1236,25'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1236,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1237,3'
              BranchSideFuncs:
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1238,5'
              BranchSideFuncs:
                - RSA_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1199,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1201,7'
          Dst:             freerdp_certificate_is_rsa
        - Src:             'libfreerdp/crypto/certificate.c:1212,21'
          Dst:             X509_get0_pubkey
        - Src:             'libfreerdp/crypto/certificate.c:1217,8'
          Dst:             EVP_PKEY_get1_RSA
        - Src:             'libfreerdp/crypto/certificate.c:1227,2'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/certificate.c:1236,7'
          Dst:             cert_info_create
        - Src:             'libfreerdp/crypto/certificate.c:1241,2'
          Dst:             RSA_free
    - functionName:    sk_X509_dup
      functionSourceFile: '/usr/include/openssl/x509.h'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 99
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_dup
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509.h:99,1'
          Dst:             OPENSSL_sk_dup
    - functionName:    freerdp_certificate_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1187
      functionLinenumberEnd: 1193
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         6
      ICount:          29
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - certificate_free_int
      functionUses:    7
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1188,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1189,3'
              BranchSideFuncs:
                - certificate_free_int
                - free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1191,23'
              BranchSideFuncs:
                - certificate_free_int
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1191,2'
          Dst:             certificate_free_int
    - functionName:    certificate_free_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1169
      functionLinenumberEnd: 1179
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
      BBCount:         12
      ICount:          63
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - X509_free
        - __assert_fail
        - cert_info_free
        - certificate_free_x509_certificate_chain
        - sk_X509_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1170,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1170,2'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_free
                - X509_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1172,6'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_free
                - X509_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1172,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1173,13'
              BranchSideFuncs:
                - X509_free
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1174,6'
              BranchSideFuncs:
                - certificate_free_x509_certificate_chain
                - cert_info_free
                - sk_X509_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1174,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1174,6'
              BranchSideFuncs:
                - sk_X509_free
                - certificate_free_x509_certificate_chain
                - cert_info_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1175,16'
              BranchSideFuncs:
                - sk_X509_free
                - certificate_free_x509_certificate_chain
                - cert_info_free
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1170,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1173,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1175,3'
          Dst:             sk_X509_free
        - Src:             'libfreerdp/crypto/certificate.c:1177,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1178,2'
          Dst:             cert_info_free
    - functionName:    OPENSSL_sk_dup
      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:    freerdp_certificate_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1303
      functionLinenumberEnd: 1304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - file
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - freerdp_certificate_new_from
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1304,9'
          Dst:             freerdp_certificate_new_from
    - functionName:    freerdp_certificate_new_from_der
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1250
      functionLinenumberEnd: 1265
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - length
      BBCount:         16
      ICount:          84
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - d2i_X509
        - freerdp_certificate_free
        - freerdp_certificate_new
        - freerdp_rsa_from_x509
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1253,12'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1253,16'
              BranchSideFuncs:
                - freerdp_certificate_free
                - d2i_X509
                - freerdp_rsa_from_x509
            - BranchSide:      'libfreerdp/crypto/certificate.c:1254,3'
              BranchSideFuncs:
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1253,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1253,25'
              BranchSideFuncs:
                - d2i_X509
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
            - BranchSide:      'libfreerdp/crypto/certificate.c:1254,3'
              BranchSideFuncs:
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1253,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1254,3'
              BranchSideFuncs:
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1255,20'
              BranchSideFuncs:
                - d2i_X509
                - freerdp_certificate_free
                - freerdp_rsa_from_x509
        - Branch String:   'libfreerdp/crypto/certificate.c:1257,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1258,3'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1259,29'
              BranchSideFuncs:
                - freerdp_rsa_from_x509
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1259,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1260,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1261,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1251,25'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1256,15'
          Dst:             d2i_X509
        - Src:             'libfreerdp/crypto/certificate.c:1259,7'
          Dst:             freerdp_rsa_from_x509
        - Src:             'libfreerdp/crypto/certificate.c:1263,2'
          Dst:             freerdp_certificate_free
    - functionName:    d2i_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_clone_int
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - src
      BBCount:         17
      ICount:          90
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - X509_dup
        - __assert_fail
        - cert_info_clone
        - cert_x509_chain_copy
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1123,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1123,2'
              BranchSideFuncs:
                - __assert_fail
                - cert_info_clone
                - cert_x509_chain_copy
                - X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1124,2'
              BranchSideFuncs:
                - __assert_fail
                - cert_info_clone
                - cert_x509_chain_copy
                - X509_dup
        - Branch String:   'libfreerdp/crypto/certificate.c:1124,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1124,2'
              BranchSideFuncs:
                - cert_info_clone
                - cert_x509_chain_copy
                - X509_dup
            - BranchSide:      'libfreerdp/crypto/certificate.c:1126,6'
              BranchSideFuncs:
                - cert_info_clone
                - cert_x509_chain_copy
                - X509_dup
        - Branch String:   'libfreerdp/crypto/certificate.c:1126,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1128,24'
              BranchSideFuncs:
                - X509_dup
                - cert_info_clone
                - cert_x509_chain_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1133,24'
              BranchSideFuncs:
                - cert_info_clone
                - cert_x509_chain_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1129,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1130,4'
              BranchSideFuncs:
                - cert_info_clone
                - cert_x509_chain_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1131,2'
              BranchSideFuncs:
                - cert_info_clone
                - cert_x509_chain_copy
        - Branch String:   'libfreerdp/crypto/certificate.c:1133,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1134,3'
              BranchSideFuncs:
                - cert_x509_chain_copy
            - BranchSide:      'libfreerdp/crypto/certificate.c:1135,31'
              BranchSideFuncs:
                - cert_x509_chain_copy
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1123,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1124,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1128,15'
          Dst:             X509_dup
        - Src:             'libfreerdp/crypto/certificate.c:1133,7'
          Dst:             cert_info_clone
        - Src:             'libfreerdp/crypto/certificate.c:1135,9'
          Dst:             cert_x509_chain_copy
    - functionName:    freerdp_certificate_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1139
      functionLinenumberEnd: 1156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - certificate
      BBCount:         11
      ICount:          57
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - cert_clone_int
        - freerdp_certificate_free
        - freerdp_certificate_new
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1140,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1141,3'
              BranchSideFuncs:
                - freerdp_certificate_new
                - cert_clone_int
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1143,33'
              BranchSideFuncs:
                - freerdp_certificate_new
                - cert_clone_int
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1145,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1146,3'
              BranchSideFuncs:
                - cert_clone_int
                - freerdp_certificate_free
            - BranchSide:      'libfreerdp/crypto/certificate.c:1148,22'
              BranchSideFuncs:
                - cert_clone_int
                - freerdp_certificate_free
        - Branch String:   'libfreerdp/crypto/certificate.c:1148,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1149,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:1151,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1143,33'
          Dst:             freerdp_certificate_new
        - Src:             'libfreerdp/crypto/certificate.c:1148,7'
          Dst:             cert_clone_int
        - Src:             'libfreerdp/crypto/certificate.c:1154,2'
          Dst:             freerdp_certificate_free
    - functionName:    certificate_read_server_x509_certificate_chain
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - cert
        - s
      BBCount:         46
      ICount:          202
      EdgeCount:       55
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - __assert_fail
        - cert_blob_read
        - certificate_free_x509_certificate_chain
        - certificate_new_x509_certificate_chain
        - certificate_read_x509_certificate
        - stream_read_u32_le
        - update_x509_from_info
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:954,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:954,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u32_le
                - certificate_free_x509_certificate_chain
                - certificate_new_x509_certificate_chain
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:955,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u32_le
                - certificate_free_x509_certificate_chain
                - certificate_new_x509_certificate_chain
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:955,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:956,3'
              BranchSideFuncs:
                - stream_read_u32_le
                - certificate_free_x509_certificate_chain
                - certificate_new_x509_certificate_chain
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:958,2'
              BranchSideFuncs:
                - stream_read_u32_le
                - certificate_free_x509_certificate_chain
                - certificate_new_x509_certificate_chain
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:962,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:964,24'
              BranchSideFuncs:
                - cert_blob_read
                - update_x509_from_info
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:990,31'
              BranchSideFuncs:
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:965,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:966,4'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:968,7'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:968,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:970,4'
              BranchSideFuncs:
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
                - cert_blob_read
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:988,2'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:974,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:976,32'
              BranchSideFuncs:
                - update_x509_from_info
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
            - BranchSide:      'libfreerdp/crypto/certificate.c:980,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:976,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:977,10'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:978,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:980,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:982,5'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
            - BranchSide:      'libfreerdp/crypto/certificate.c:986,4'
              BranchSideFuncs:
                - update_x509_from_info
                - cert_blob_read
                - certificate_read_x509_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - update_x509_from_info
        - Branch String:   'libfreerdp/crypto/certificate.c:982,5'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:982,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:982,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:982,5'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:982,5'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:982,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:954,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:955,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:958,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:959,2'
          Dst:             certificate_free_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:960,26'
          Dst:             certificate_new_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:965,8'
          Dst:             cert_blob_read
        - Src:             'libfreerdp/crypto/certificate.c:972,15'
          Dst:             certificate_read_x509_certificate
        - Src:             'libfreerdp/crypto/certificate.c:976,10'
          Dst:             update_x509_from_info
        - Src:             'libfreerdp/crypto/certificate.c:982,5'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:982,5'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:982,5'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:990,9'
          Dst:             update_x509_from_info
    - functionName:    certificate_read_server_proprietary_certificate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 742
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - certificate
        - s
      BBCount:         102
      ICount:          398
      EdgeCount:       123
      CyclomaticComplexity: 23
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Pointer
        - WLog_Get
        - __assert_fail
        - certificate_process_server_public_key
        - certificate_process_server_public_signature
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:751,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:751,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:752,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:752,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:753,3'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:756,24'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u32_le
                - stream_read_u32_le
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:760,42'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:760,46'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:762,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:760,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:762,3'
              BranchSideFuncs:
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:769,2'
              BranchSideFuncs:
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:762,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:762,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:762,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:762,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:762,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:762,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:771,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:773,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:777,2'
              BranchSideFuncs:
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:773,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:773,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:773,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:773,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:773,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:773,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:779,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:780,3'
              BranchSideFuncs:
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:782,45'
              BranchSideFuncs:
                - certificate_process_server_public_key
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:782,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:783,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:785,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:785,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:786,3'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:788,15'
              BranchSideFuncs:
                - Stream_Pointer
                - stream_read_u16_le
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:791,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:793,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:797,2'
              BranchSideFuncs:
                - stream_read_u16_le
                - Stream_CheckAndLogRequiredLengthEx
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:793,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:793,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:793,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:793,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:793,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:793,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:799,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:800,3'
              BranchSideFuncs:
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:802,6'
              BranchSideFuncs:
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:802,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:804,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:808,51'
              BranchSideFuncs:
                - certificate_process_server_public_signature
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:804,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:804,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:804,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:804,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:804,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:804,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:808,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:811,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/certificate.c:814,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:811,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:811,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:811,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:811,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:811,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:811,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:751,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:752,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:756,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:757,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:758,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:762,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:762,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:762,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:769,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:773,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:773,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:773,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:777,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:779,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:782,7'
          Dst:             certificate_process_server_public_key
        - Src:             'libfreerdp/crypto/certificate.c:785,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:788,15'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:789,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:793,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:793,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:793,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:797,2'
          Dst:             stream_read_u16_le
        - Src:             'libfreerdp/crypto/certificate.c:799,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/certificate.c:804,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:804,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:804,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:808,7'
          Dst:             certificate_process_server_public_signature
        - Src:             'libfreerdp/crypto/certificate.c:811,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:811,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:811,3'
          Dst:             WLog_PrintMessage
    - functionName:    freerdp_certificate_read_server_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1026
      functionLinenumberEnd: 1068
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - certificate
        - server_cert
        - length
      BBCount:         56
      ICount:          210
      EdgeCount:       63
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_StaticConstInit
        - WLog_Get
        - __assert_fail
        - certificate_read_server_proprietary_certificate
        - certificate_read_server_x509_certificate_chain
        - stream_read_u32_le
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:1032,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1032,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_StaticConstInit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1033,6'
              BranchSideFuncs:
                - __assert_fail
                - Stream_StaticConstInit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1033,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1035,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1039,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_StaticConstInit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1035,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1035,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1035,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1035,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1035,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1035,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1039,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1039,2'
              BranchSideFuncs:
                - Stream_StaticConstInit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1040,39'
              BranchSideFuncs:
                - Stream_StaticConstInit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1042,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1044,3'
              BranchSideFuncs:
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1048,2'
              BranchSideFuncs:
                - stream_read_u32_le
                - certificate_read_server_x509_certificate_chain
                - certificate_read_server_proprietary_certificate
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1044,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1044,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1044,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1044,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1044,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1044,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/certificate.c:1050,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1053,58'
              BranchSideFuncs:
                - certificate_read_server_proprietary_certificate
            - BranchSide:      'libfreerdp/crypto/certificate.c:1057,57'
              BranchSideFuncs:
                - certificate_read_server_x509_certificate_chain
            - BranchSide:      'libfreerdp/crypto/certificate.c:1061,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1061,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1061,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1061,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:1061,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:1061,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:1061,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:1032,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1035,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1035,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1035,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1039,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:1040,6'
          Dst:             Stream_StaticConstInit
        - Src:             'libfreerdp/crypto/certificate.c:1044,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1044,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1044,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:1048,2'
          Dst:             stream_read_u32_le
        - Src:             'libfreerdp/crypto/certificate.c:1053,10'
          Dst:             certificate_read_server_proprietary_certificate
        - Src:             'libfreerdp/crypto/certificate.c:1057,10'
          Dst:             certificate_read_server_x509_certificate_chain
        - Src:             'libfreerdp/crypto/certificate.c:1061,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:1061,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:1061,4'
          Dst:             WLog_PrintMessage
    - functionName:    cert_write_server_certificate_v2
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 888
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - certificate
      BBCount:         17
      ICount:          115
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT32
        - Stream_Zero
        - __assert_fail
        - cert_blob_write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:889,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:889,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:891,35'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
        - Branch String:   'libfreerdp/crypto/certificate.c:894,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:895,3'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:897,22'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
        - Branch String:   'libfreerdp/crypto/certificate.c:898,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:900,30'
              BranchSideFuncs:
                - cert_blob_write
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:905,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
        - Branch String:   'libfreerdp/crypto/certificate.c:901,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:902,4'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
            - BranchSide:      'libfreerdp/crypto/certificate.c:903,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Zero
                - cert_blob_write
        - Branch String:   'libfreerdp/crypto/certificate.c:905,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:906,3'
              BranchSideFuncs:
                - Stream_Zero
            - BranchSide:      'libfreerdp/crypto/certificate.c:907,14'
              BranchSideFuncs:
                - Stream_Zero
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:889,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:894,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:897,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:901,8'
          Dst:             cert_blob_write
        - Src:             'libfreerdp/crypto/certificate.c:905,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:907,2'
          Dst:             Stream_Zero
    - functionName:    cert_write_server_certificate_v1
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 870
      functionLinenumberEnd: 885
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - certificate
      BBCount:         11
      ICount:          84
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Pointer
        - Stream_Write_UINT16
        - Stream_Write_UINT32
        - __assert_fail
        - cert_write_rsa_public_key
        - cert_write_rsa_signature
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:874,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:874,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT16
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
            - BranchSide:      'libfreerdp/crypto/certificate.c:875,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT16
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
        - Branch String:   'libfreerdp/crypto/certificate.c:875,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:876,3'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT16
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
            - BranchSide:      'libfreerdp/crypto/certificate.c:877,22'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - Stream_Write_UINT32
                - Stream_Write_UINT16
                - cert_write_rsa_public_key
                - Stream_GetPosition
                - cert_write_rsa_signature
        - Branch String:   'libfreerdp/crypto/certificate.c:880,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:881,3'
              BranchSideFuncs:
                - Stream_GetPosition
                - cert_write_rsa_signature
            - BranchSide:      'libfreerdp/crypto/certificate.c:883,15'
              BranchSideFuncs:
                - Stream_GetPosition
                - cert_write_rsa_signature
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:871,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:872,24'
          Dst:             Stream_Pointer
        - Src:             'libfreerdp/crypto/certificate.c:874,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/certificate.c:875,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:877,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:878,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:879,2'
          Dst:             Stream_Write_UINT16
        - Src:             'libfreerdp/crypto/certificate.c:880,7'
          Dst:             cert_write_rsa_public_key
        - Src:             'libfreerdp/crypto/certificate.c:883,21'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:884,9'
          Dst:             cert_write_rsa_signature
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:896,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:896,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:897,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:896,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             __assert_fail
    - functionName:    freerdp_certificate_write_server_cert
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/certificate.c'
      linkageType:     InternalLinkage
      functionLinenumber: 913
      functionLinenumberEnd: 940
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - certificate
        - dwVersion
        - s
      BBCount:         28
      ICount:          134
      EdgeCount:       33
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_GetPosition
        - Stream_Write_UINT32
        - WLog_Get
        - cert_write_server_certificate_v1
        - cert_write_server_certificate_v2
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/certificate.c:914,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:915,3'
              BranchSideFuncs:
                - Stream_GetPosition
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - cert_write_server_certificate_v1
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:917,42'
              BranchSideFuncs:
                - Stream_GetPosition
                - Stream_EnsureRemainingCapacity
                - Stream_Write_UINT32
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - cert_write_server_certificate_v1
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:918,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:919,3'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - cert_write_server_certificate_v1
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:920,22'
              BranchSideFuncs:
                - Stream_Write_UINT32
                - cert_write_server_certificate_v2
                - Stream_GetPosition
                - cert_write_server_certificate_v1
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:922,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:925,42'
              BranchSideFuncs:
                - cert_write_server_certificate_v1
                - Stream_GetPosition
            - BranchSide:      'libfreerdp/crypto/certificate.c:929,42'
              BranchSideFuncs:
                - cert_write_server_certificate_v2
                - Stream_GetPosition
            - BranchSide:      'libfreerdp/crypto/certificate.c:933,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:925,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:926,5'
              BranchSideFuncs:
                - Stream_GetPosition
            - BranchSide:      'libfreerdp/crypto/certificate.c:927,4'
              BranchSideFuncs:
                - Stream_GetPosition
        - Branch String:   'libfreerdp/crypto/certificate.c:929,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:930,5'
              BranchSideFuncs:
                - Stream_GetPosition
            - BranchSide:      'libfreerdp/crypto/certificate.c:931,4'
              BranchSideFuncs:
                - Stream_GetPosition
        - Branch String:   'libfreerdp/crypto/certificate.c:933,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:933,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:933,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/certificate.c:933,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/certificate.c:933,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/certificate.c:933,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/certificate.c:917,23'
          Dst:             Stream_GetPosition
        - Src:             'libfreerdp/crypto/certificate.c:918,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/certificate.c:920,2'
          Dst:             Stream_Write_UINT32
        - Src:             'libfreerdp/crypto/certificate.c:925,9'
          Dst:             cert_write_server_certificate_v1
        - Src:             'libfreerdp/crypto/certificate.c:929,9'
          Dst:             cert_write_server_certificate_v2
        - Src:             'libfreerdp/crypto/certificate.c:933,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/certificate.c:933,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/certificate.c:933,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/certificate.c:938,21'
          Dst:             Stream_GetPosition
    - functionName:    crypto_rsa_common
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      size_t
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - key_length
        - modulus
        - exponent
        - exponent_size
        - output
        - out_length
      BBCount:         51
      ICount:          358
      EdgeCount:       72
      CyclomaticComplexity: 23
      functionsReached:
        - BN_CTX_free
        - BN_CTX_new
        - BN_bin2bn
        - BN_bn2bin
        - BN_clear_free
        - BN_free
        - BN_mod_exp
        - BN_new
        - calloc
        - crypto_reverse
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:55,13'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:55,17'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:56,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/crypto.c:55,25'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:55,29'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:56,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/crypto.c:55,38'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:55,42'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:56,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/crypto.c:55,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:56,3'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:58,6'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:58,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:59,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/crypto.c:61,6'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:61,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:62,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/crypto.c:64,22'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:65,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:66,16'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:68,32'
              BranchSideFuncs:
                - calloc
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:70,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:71,3'
              BranchSideFuncs:
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:73,20'
              BranchSideFuncs:
                - crypto_reverse
                - crypto_reverse
                - crypto_reverse
                - BN_CTX_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:82,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:83,3'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:85,14'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:85,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:86,3'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:88,14'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:88,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:89,3'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:91,12'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_new
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:91,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:92,3'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:94,12'
              BranchSideFuncs:
                - BN_new
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_bin2bn
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:94,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:95,3'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:97,17'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_bin2bn
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:97,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:98,3'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:100,17'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_bin2bn
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:100,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:101,3'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/crypto.c:102,17'
              BranchSideFuncs:
                - BN_bin2bn
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/crypto.c:102,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:103,3'
              BranchSideFuncs:
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:104,17'
              BranchSideFuncs:
                - BN_mod_exp
                - BN_bn2bin
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:104,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:105,3'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:106,28'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:107,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:108,3'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:109,14'
              BranchSideFuncs:
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:110,3'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:111,17'
              BranchSideFuncs:
                - crypto_reverse
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:113,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:113,30'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:115,17'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
        - Branch String:   'libfreerdp/crypto/crypto.c:116,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:117,11'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:118,10'
              BranchSideFuncs:
                - BN_free
                - BN_clear_free
                - BN_free
                - BN_free
                - BN_CTX_free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:68,25'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/crypto.c:76,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:78,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:80,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:82,14'
          Dst:             BN_CTX_new
        - Src:             'libfreerdp/crypto/crypto.c:85,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:88,14'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:91,12'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:94,12'
          Dst:             BN_new
        - Src:             'libfreerdp/crypto/crypto.c:97,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/crypto.c:100,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/crypto.c:102,7'
          Dst:             BN_bin2bn
        - Src:             'libfreerdp/crypto/crypto.c:104,6'
          Dst:             BN_mod_exp
        - Src:             'libfreerdp/crypto/crypto.c:106,18'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/crypto.c:111,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/crypto.c:122,2'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/crypto.c:123,2'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/crypto.c:124,2'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/crypto.c:125,2'
          Dst:             BN_free
        - Src:             'libfreerdp/crypto/crypto.c:126,2'
          Dst:             BN_CTX_free
    - functionName:    crypto_reverse
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 177
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - data
        - length
      BBCount:         8
      ICount:          67
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    7
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:178,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:179,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/crypto.c:181,14'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/crypto.c:181,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:181,2'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/crypto.c:183,21'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    BN_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_mod_exp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_clear_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypto_write_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - filename
        - pem
        - length
      BBCount:         36
      ICount:          162
      EdgeCount:       41
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - __assert_fail
        - __errno_location
        - fclose
        - fwrite
        - strnlen
        - winpr_fopen
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:240,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:240,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:241,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:241,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:241,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:243,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:243,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:243,2'
              BranchSideFuncs:
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:244,2'
              BranchSideFuncs:
                - __assert_fail
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:244,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:244,2'
              BranchSideFuncs:
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:246,30'
              BranchSideFuncs:
                - strnlen
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fwrite
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:249,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:250,3'
              BranchSideFuncs:
                - fwrite
                - fclose
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:251,14'
              BranchSideFuncs:
                - fwrite
                - fclose
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/crypto.c:254,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:254,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:256,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/crypto.c:257,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:257,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:257,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/crypto.c:257,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:257,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:257,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:240,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:241,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:243,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:244,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:246,22'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/crypto.c:248,13'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/crypto.c:251,7'
          Dst:             fwrite
        - Src:             'libfreerdp/crypto/crypto.c:252,8'
          Dst:             fclose
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/crypto.c:257,3'
          Dst:             WLog_PrintMessage
    - 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:    12
      BranchProfiles:  []
      Callsites:       []
    - 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:    12
      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:    161
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypto_read_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - filename
        - plength
      BBCount:         41
      ICount:          203
      EdgeCount:       52
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Get
        - __assert_fail
        - __errno_location
        - calloc
        - fclose
        - fread
        - fseeko64
        - ftello64
        - strnlen
        - winpr_fopen
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:194,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:194,2'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fseeko64
                - ftello64
                - fseeko64
                - calloc
                - fread
                - fclose
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:196,6'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fseeko64
                - ftello64
                - fseeko64
                - calloc
                - fread
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:196,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:197,4'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fseeko64
                - ftello64
                - fseeko64
                - calloc
                - fread
                - fclose
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:199,19'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fseeko64
                - ftello64
                - fseeko64
                - calloc
                - fread
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:200,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:201,3'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - fseeko64
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fread
                - fclose
                - strnlen
            - BranchSide:      'libfreerdp/crypto/crypto.c:202,17'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - fseeko64
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fread
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:203,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:204,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:205,23'
              BranchSideFuncs:
                - ftello64
                - fseeko64
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fread
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:206,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:207,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:208,17'
              BranchSideFuncs:
                - fseeko64
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fread
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:209,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:210,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:212,15'
              BranchSideFuncs:
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - fread
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:213,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:214,3'
              BranchSideFuncs:
                - fread
                - fclose
                - strnlen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:216,26'
              BranchSideFuncs:
                - fread
                - fclose
                - strnlen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/crypto.c:217,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:218,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:220,6'
              BranchSideFuncs:
                - fclose
                - strnlen
        - Branch String:   'libfreerdp/crypto/crypto.c:220,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:221,22'
              BranchSideFuncs:
                - strnlen
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:222,15'
              BranchSideFuncs:
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:228,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:228,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/crypto.c:228,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/crypto.c:228,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:228,2'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - free
                - fclose
            - BranchSide:      'libfreerdp/crypto/crypto.c:228,2'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'libfreerdp/crypto/crypto.c:231,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:232,16'
              BranchSideFuncs:
                - fclose
                - free
            - BranchSide:      'libfreerdp/crypto/crypto.c:233,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:194,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:199,7'
          Dst:             winpr_fopen
        - Src:             'libfreerdp/crypto/crypto.c:202,17'
          Dst:             fseeko64
        - Src:             'libfreerdp/crypto/crypto.c:205,23'
          Dst:             ftello64
        - Src:             'libfreerdp/crypto/crypto.c:208,17'
          Dst:             fseeko64
        - Src:             'libfreerdp/crypto/crypto.c:212,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/crypto.c:216,20'
          Dst:             fread
        - Src:             'libfreerdp/crypto/crypto.c:221,14'
          Dst:             strnlen
        - Src:             'libfreerdp/crypto/crypto.c:222,8'
          Dst:             fclose
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/crypto.c:228,2'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/crypto.c:232,9'
          Dst:             fclose
    - 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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ftello64
      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:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fread
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    crypto_rsa_private_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - key
        - output
        - output_length
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_private
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:173,9'
          Dst:             crypto_rsa_private
    - functionName:    crypto_rsa_private
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 141
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - key
        - output
        - output_length
      BBCount:         9
      ICount:          73
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - crypto_rsa_common
        - freerdp_key_get_exponent
        - freerdp_key_get_info
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:142,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:142,2'
              BranchSideFuncs:
                - freerdp_key_get_info
                - __assert_fail
                - freerdp_key_get_exponent
                - crypto_rsa_common
            - BranchSide:      'libfreerdp/crypto/crypto.c:143,49'
              BranchSideFuncs:
                - freerdp_key_get_info
                - __assert_fail
                - freerdp_key_get_exponent
                - crypto_rsa_common
        - Branch String:   'libfreerdp/crypto/crypto.c:144,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:144,2'
              BranchSideFuncs:
                - freerdp_key_get_exponent
                - crypto_rsa_common
            - BranchSide:      'libfreerdp/crypto/crypto.c:144,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:142,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:143,28'
          Dst:             freerdp_key_get_info
        - Src:             'libfreerdp/crypto/crypto.c:144,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:147,32'
          Dst:             freerdp_key_get_exponent
        - Src:             'libfreerdp/crypto/crypto.c:148,9'
          Dst:             crypto_rsa_common
    - functionName:    crypto_rsa_private_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - key
        - output
        - output_length
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_private
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:167,9'
          Dst:             crypto_rsa_private
    - functionName:    crypto_rsa_public_decrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - cert
        - output
        - output_length
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_public
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:161,9'
          Dst:             crypto_rsa_public
    - functionName:    crypto_rsa_public
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - cert
        - output
        - output_length
      BBCount:         6
      ICount:          52
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - crypto_rsa_common
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/crypto.c:134,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/crypto.c:134,2'
              BranchSideFuncs:
                - crypto_rsa_common
            - BranchSide:      'libfreerdp/crypto/crypto.c:134,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:134,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/crypto.c:135,9'
          Dst:             crypto_rsa_common
    - functionName:    crypto_rsa_public_encrypt
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/crypto.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 155
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - input
        - length
        - cert
        - output
        - output_length
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - crypto_rsa_public
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/crypto.c:155,9'
          Dst:             crypto_rsa_public
    - functionName:    ber_read_integer_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 730
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ber_read_universal_tag
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:731,59'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:731,78'
              BranchSideFuncs:
                - ber_read_length
            - BranchSide:      'libfreerdp/crypto/ber.c:731,59'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:731,9'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:731,62'
          Dst:             ber_read_length
    - functionName:    ber_read_universal_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 123
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - pc
      BBCount:         25
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - __assert_fail
        - stream_read_u8
      functionUses:    6
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:127,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:127,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:129,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:129,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:130,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:132,2'
              BranchSideFuncs:
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:134,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:136,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:140,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:136,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:136,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:136,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:136,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:136,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:136,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:127,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:129,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:132,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:136,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:136,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:136,3'
          Dst:             WLog_PrintMessage
    - functionName:    ber_read_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 33
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         41
      ICount:          163
      EdgeCount:       48
      CyclomaticComplexity: 9
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - __assert_fail
        - stream_read_u16_be
        - stream_read_u8
      functionUses:    10
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:36,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:36,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:37,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:37,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:37,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:39,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:39,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:40,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:42,2'
              BranchSideFuncs:
                - stream_read_u8.246
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:44,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:46,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:63,13'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:48,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:49,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:51,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:51,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:52,4'
              BranchSideFuncs:
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:53,12'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u16_be
        - Branch String:   'libfreerdp/crypto/ber.c:53,12'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:54,4'
              BranchSideFuncs:
                - stream_read_u16_be
            - BranchSide:      'libfreerdp/crypto/ber.c:57,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:57,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:57,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:57,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:57,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:57,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:57,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:36,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:37,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:39,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:42,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:48,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:52,4'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:54,4'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:57,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:57,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:57,4'
          Dst:             WLog_PrintMessage
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:147,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:147,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:148,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:148,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:148,3'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:150,19'
              BranchSideFuncs:
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:151,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:151,7'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:152,16'
              BranchSideFuncs:
                - Stream_Seek.251
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:147,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:148,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:148,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:152,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u16_be
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 180
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          71
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:181,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:181,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:182,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:182,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:182,3'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:184,22'
              BranchSideFuncs:
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:186,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:186,7'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:187,16'
              BranchSideFuncs:
                - Stream_Seek.251
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:181,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:182,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:182,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:187,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    ber_sizeof_contextual_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 724
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - value
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ber_sizeof_contextual_tag
        - ber_sizeof_integer
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:725,19'
          Dst:             ber_sizeof_integer
        - Src:             'libfreerdp/crypto/ber.c:726,9'
          Dst:             ber_sizeof_contextual_tag
    - functionName:    ber_sizeof_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 699
      functionLinenumberEnd: 721
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - value
      BBCount:         10
      ICount:          50
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:700,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:702,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:704,11'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:704,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:706,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:708,11'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:708,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:710,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:712,11'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:712,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:714,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:719,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ber_sizeof_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 280
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - length
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:280,13'
          Dst:             _ber_sizeof_length
    - functionName:    _ber_sizeof_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - length
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:104,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:105,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:107,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:107,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:108,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:110,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ber_write_contextual_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - value
      BBCount:         9
      ICount:          61
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - __assert_fail
        - ber_sizeof_integer
        - ber_write_contextual_tag
        - ber_write_integer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:689,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:689,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - __assert_fail
                - ber_write_contextual_tag
                - ber_write_integer
            - BranchSide:      'libfreerdp/crypto/ber.c:691,2'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - __assert_fail
                - ber_write_contextual_tag
                - ber_write_integer
        - Branch String:   'libfreerdp/crypto/ber.c:691,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:691,2'
              BranchSideFuncs:
                - ber_write_contextual_tag
                - ber_write_integer
            - BranchSide:      'libfreerdp/crypto/ber.c:691,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:687,15'
          Dst:             ber_sizeof_integer
        - Src:             'libfreerdp/crypto/ber.c:689,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:691,2'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:691,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:693,9'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:694,2'
          Dst:             ber_write_integer
    - functionName:    ber_write_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - size_t
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
        - pc
      BBCount:         9
      ICount:          63
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT8
        - __assert_fail
        - ber_write_length
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:272,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:272,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:273,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - ber_write_length
        - Branch String:   'libfreerdp/crypto/ber.c:273,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:273,2'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:273,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:272,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:273,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:273,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:274,2'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:275,13'
          Dst:             ber_write_length
    - functionName:    ber_write_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         15
      ICount:          113
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_Write_UINT16_BE
        - Stream_Write_UINT32_BE
        - Stream_Write_UINT8
        - __assert_fail
        - ber_write_length
        - ber_write_universal_tag
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:639,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:639,2'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT16_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:641,6'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT16_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
        - Branch String:   'libfreerdp/crypto/ber.c:641,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:643,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:649,11'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT16_BE
        - Branch String:   'libfreerdp/crypto/ber.c:649,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:651,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT16_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:657,11'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
        - Branch String:   'libfreerdp/crypto/ber.c:657,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:659,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:666,11'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
        - Branch String:   'libfreerdp/crypto/ber.c:666,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:668,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:677,27'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UINT32_BE
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:639,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:643,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:644,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:646,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:651,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:652,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:654,3'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'libfreerdp/crypto/ber.c:659,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:660,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:662,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:663,3'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'libfreerdp/crypto/ber.c:668,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:669,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:671,3'
          Dst:             Stream_Write_UINT32_BE
        - Src:             'libfreerdp/crypto/ber.c:677,3'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:678,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:680,3'
          Dst:             Stream_Write_UINT32_BE
    - functionName:    ber_write_universal_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 151
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - pc
      BBCount:         6
      ICount:          45
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8
        - __assert_fail
      functionUses:    11
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:152,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:152,2'
              BranchSideFuncs:
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:152,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:152,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:153,2'
          Dst:             Stream_Write_UINT8
    - functionName:    ber_write_length
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         26
      ICount:          120
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_BE
        - Stream_Write_UINT8
        - __assert_fail
      functionUses:    15
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:77,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:77,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:79,6'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
        - Branch String:   'libfreerdp/crypto/ber.c:79,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:81,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:88,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
        - Branch String:   'libfreerdp/crypto/ber.c:81,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:81,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:82,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
        - Branch String:   'libfreerdp/crypto/ber.c:82,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:82,3'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
            - BranchSide:      'libfreerdp/crypto/ber.c:83,22'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - Stream_Write_UINT16_BE
        - Branch String:   'libfreerdp/crypto/ber.c:88,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:88,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:89,6'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
        - Branch String:   'libfreerdp/crypto/ber.c:89,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:91,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:97,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
        - Branch String:   'libfreerdp/crypto/ber.c:91,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:91,3'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:92,22'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - Stream_Write_UINT8
        - Branch String:   'libfreerdp/crypto/ber.c:97,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:97,2'
              BranchSideFuncs:
                - Stream_Write_UINT8
            - BranchSide:      'libfreerdp/crypto/ber.c:98,21'
              BranchSideFuncs:
                - Stream_Write_UINT8
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:77,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:81,3'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:82,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:82,3'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:83,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:84,3'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'libfreerdp/crypto/ber.c:88,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:91,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:91,3'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:92,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:93,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:97,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:97,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:98,2'
          Dst:             Stream_Write_UINT8
    - functionName:    Stream_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    14
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:678,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:678,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:679,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:679,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:679,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:680,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:678,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:679,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:680,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:680,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UINT16_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:704,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:704,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:705,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:705,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:705,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:706,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:706,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:706,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:706,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:704,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:705,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:706,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:706,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UINT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         6
      ICount:          42
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_BE
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:746,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:746,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE
                - Stream_Write_UINT16_BE
            - BranchSide:      'winpr/include/winpr/stream.h:746,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:746,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:746,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:747,3'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/include/winpr/stream.h:748,3'
          Dst:             Stream_Write_UINT16_BE
    - functionName:    stream_read_u32_be
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:231,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:231,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:232,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:232,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:232,3'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:234,21'
              BranchSideFuncs:
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:238,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:238,7'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:239,16'
              BranchSideFuncs:
                - Stream_Seek.251
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:231,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:232,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:232,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:239,4'
          Dst:             Stream_Seek
    - functionName:    ber_read_integer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 577
      functionLinenumberEnd: 626
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         63
      ICount:          235
      EdgeCount:       76
      CyclomaticComplexity: 15
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_SafeSeekEx
        - WLog_Get
        - __assert_fail
        - ber_read_length
        - ber_read_universal_tag
        - stream_read_u16_be
        - stream_read_u32_be
        - stream_read_u8
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:580,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:580,2'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:582,30'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:582,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:583,3'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:584,23'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:584,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:585,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:586,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:586,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:587,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:589,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
                - Stream_SafeSeekEx
        - Branch String:   'libfreerdp/crypto/ber.c:589,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:592,10'
              BranchSideFuncs:
                - Stream_SafeSeekEx
            - BranchSide:      'libfreerdp/crypto/ber.c:595,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:595,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:597,3'
              BranchSideFuncs:
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:599,11'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
                - stream_read_u16_be
        - Branch String:   'libfreerdp/crypto/ber.c:599,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:601,3'
              BranchSideFuncs:
                - stream_read_u16_be
            - BranchSide:      'libfreerdp/crypto/ber.c:603,11'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
                - stream_read_u8.246
                - stream_read_u16_be
        - Branch String:   'libfreerdp/crypto/ber.c:603,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:605,8'
              BranchSideFuncs:
                - stream_read_u8.246
                - stream_read_u16_be
            - BranchSide:      'libfreerdp/crypto/ber.c:610,11'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - stream_read_u32_be
        - Branch String:   'libfreerdp/crypto/ber.c:610,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:612,3'
              BranchSideFuncs:
                - stream_read_u32_be
            - BranchSide:      'libfreerdp/crypto/ber.c:614,11'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:614,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:616,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:621,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:616,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:616,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:616,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:616,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:616,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:616,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:621,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:621,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:621,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:621,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:621,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:621,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:580,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:582,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:584,7'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:586,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:592,10'
          Dst:             Stream_SafeSeekEx
        - Src:             'libfreerdp/crypto/ber.c:597,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:601,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:606,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:607,3'
          Dst:             stream_read_u16_be
        - Src:             'libfreerdp/crypto/ber.c:612,3'
          Dst:             stream_read_u32_be
        - Src:             'libfreerdp/crypto/ber.c:616,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:616,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:616,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:621,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:621,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:621,3'
          Dst:             WLog_PrintMessage
    - functionName:    ber_write_BOOL
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 570
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8
        - ber_write_length
        - ber_write_universal_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:571,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:572,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:573,2'
          Dst:             Stream_Write_UINT8
    - functionName:    ber_read_BOOL
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 541
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - value
      BBCount:         30
      ICount:          126
      EdgeCount:       36
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - __assert_fail
        - ber_read_universal_tag
        - stream_read_u8
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:545,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:545,2'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:546,30'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:546,57'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:546,77'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:547,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:546,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:547,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:549,6'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:549,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:551,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:554,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:551,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:551,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:551,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:551,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:551,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:551,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:554,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:555,3'
              BranchSideFuncs:
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:557,2'
              BranchSideFuncs:
                - stream_read_u8.246
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:545,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:546,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:546,61'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:551,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:551,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:551,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:554,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:557,2'
          Dst:             stream_read_u8
    - functionName:    ber_sizeof_contextual_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - length
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ber_sizeof_contextual_tag
        - ber_sizeof_octet_string
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:528,15'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:529,9'
          Dst:             ber_sizeof_contextual_tag
    - functionName:    ber_sizeof_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - length
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:523,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_write_octet_string_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 515
      functionLinenumberEnd: 518
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
        - ber_write_length
        - ber_write_universal_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:516,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:517,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:518,13'
          Dst:             _ber_sizeof_length
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:577,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:577,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:579,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:577,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:578,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:581,3'
          Dst:             Stream_Seek
    - functionName:    ber_read_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 493
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - content
        - length
      BBCount:         19
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - __assert_fail
        - ber_read_octet_string_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:496,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:496,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
            - BranchSide:      'libfreerdp/crypto/ber.c:497,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
        - Branch String:   'libfreerdp/crypto/ber.c:497,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:497,2'
              BranchSideFuncs:
                - __assert_fail
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
            - BranchSide:      'libfreerdp/crypto/ber.c:498,2'
              BranchSideFuncs:
                - __assert_fail
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
        - Branch String:   'libfreerdp/crypto/ber.c:498,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:498,2'
              BranchSideFuncs:
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
            - BranchSide:      'libfreerdp/crypto/ber.c:500,33'
              BranchSideFuncs:
                - ber_read_octet_string_tag
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
        - Branch String:   'libfreerdp/crypto/ber.c:500,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:501,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
            - BranchSide:      'libfreerdp/crypto/ber.c:502,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - malloc
                - Stream_Read.274
        - Branch String:   'libfreerdp/crypto/ber.c:502,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:503,3'
              BranchSideFuncs:
                - malloc
                - Stream_Read.274
            - BranchSide:      'libfreerdp/crypto/ber.c:505,16'
              BranchSideFuncs:
                - malloc
                - Stream_Read.274
        - Branch String:   'libfreerdp/crypto/ber.c:506,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:507,3'
              BranchSideFuncs:
                - Stream_Read.274
            - BranchSide:      'libfreerdp/crypto/ber.c:509,14'
              BranchSideFuncs:
                - Stream_Read.274
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:496,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:497,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:498,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:500,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:502,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:509,2'
          Dst:             Stream_Read
    - functionName:    ber_read_octet_string_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 489
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ber_read_universal_tag
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:489,64'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:489,83'
              BranchSideFuncs:
                - ber_read_length
            - BranchSide:      'libfreerdp/crypto/ber.c:489,64'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:489,9'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:489,67'
          Dst:             ber_read_length
    - functionName:    ber_read_char_from_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 485
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - str
      BBCount:         8
      ICount:          58
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_Read_UTF16_String_As_UTF8
        - ber_read_octet_string_tag
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:477,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:478,3'
              BranchSideFuncs:
                - Stream_Read_UTF16_String_As_UTF8
            - BranchSide:      'libfreerdp/crypto/ber.c:480,41'
              BranchSideFuncs:
                - Stream_Read_UTF16_String_As_UTF8
        - Branch String:   'libfreerdp/crypto/ber.c:481,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:482,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:483,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:477,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:480,8'
          Dst:             Stream_Read_UTF16_String_As_UTF8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:862,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:862,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:862,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:862,3'
          Dst:             __assert_fail
    - functionName:    ber_read_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 450
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - str
      BBCount:         10
      ICount:          79
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
        - ber_read_octet_string_tag
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:454,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:455,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.251
            - BranchSide:      'libfreerdp/crypto/ber.c:457,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.251
        - Branch String:   'libfreerdp/crypto/ber.c:457,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:458,3'
              BranchSideFuncs:
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.251
            - BranchSide:      'libfreerdp/crypto/ber.c:460,18'
              BranchSideFuncs:
                - calloc
                - Stream_ConstPointer
                - Stream_Seek.251
        - Branch String:   'libfreerdp/crypto/ber.c:461,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:462,3'
              BranchSideFuncs:
                - Stream_ConstPointer
                - Stream_Seek.251
            - BranchSide:      'libfreerdp/crypto/ber.c:464,9'
              BranchSideFuncs:
                - Stream_ConstPointer
                - Stream_Seek.251
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:454,7'
          Dst:             ber_read_octet_string_tag
        - Src:             'libfreerdp/crypto/ber.c:457,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:460,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/ber.c:464,14'
          Dst:             Stream_ConstPointer
        - Src:             'libfreerdp/crypto/ber.c:466,2'
          Dst:             Stream_Seek
    - functionName:    ber_write_contextual_char_to_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 447
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tag
        - str
      BBCount:         9
      ICount:          89
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UTF16_String_From_UTF8
        - __assert_fail
        - ber_sizeof_contextual_tag
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_length
        - ber_write_universal_tag
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:437,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:437,2'
              BranchSideFuncs:
                - ber_write_contextual_tag
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UTF16_String_From_UTF8
            - BranchSide:      'libfreerdp/crypto/ber.c:439,33'
              BranchSideFuncs:
                - ber_write_contextual_tag
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UTF16_String_From_UTF8
        - Branch String:   'libfreerdp/crypto/ber.c:443,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:444,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:446,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:434,15'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/ber.c:435,21'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:437,2'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:437,2'
          Dst:             ber_sizeof_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:437,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:439,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:440,9'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:441,9'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:443,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    ber_write_contextual_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 421
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tag
        - str
      BBCount:         6
      ICount:          57
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - _wcslen
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_octet_string
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:422,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:422,2'
              BranchSideFuncs:
                - _wcslen
                - ber_sizeof_octet_string
                - ber_write_contextual_tag
                - ber_write_octet_string
            - BranchSide:      'libfreerdp/crypto/ber.c:422,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:422,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:423,15'
          Dst:             _wcslen
        - Src:             'libfreerdp/crypto/ber.c:424,21'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:427,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:428,15'
          Dst:             ber_write_octet_string
    - functionName:    ber_write_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - oct_str
        - length
      BBCount:         9
      ICount:          67
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write
        - __assert_fail
        - ber_write_length
        - ber_write_universal_tag
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:383,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:383,2'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write.280
            - BranchSide:      'libfreerdp/crypto/ber.c:383,2'
              BranchSideFuncs:
                - __assert_fail
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write.280
        - Branch String:   'libfreerdp/crypto/ber.c:383,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:383,2'
              BranchSideFuncs:
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write.280
            - BranchSide:      'libfreerdp/crypto/ber.c:383,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:383,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:384,10'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:385,10'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:386,2'
          Dst:             Stream_Write
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:767,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:767,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:769,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:770,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.251
        - Branch String:   'winpr/include/winpr/stream.h:771,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_Seek.251
            - BranchSide:      'winpr/include/winpr/stream.h:772,11'
              BranchSideFuncs:
                - Stream_Seek.251
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:769,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:770,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:773,4'
          Dst:             Stream_Seek
    - functionName:    ber_write_char_to_unicode_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 418
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - str
      BBCount:         9
      ICount:          71
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Write_UTF16_String_From_UTF8
        - __assert_fail
        - ber_write_length
        - ber_write_universal_tag
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:409,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:409,2'
              BranchSideFuncs:
                - strlen
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UTF16_String_From_UTF8
            - BranchSide:      'libfreerdp/crypto/ber.c:410,9'
              BranchSideFuncs:
                - strlen
                - ber_write_universal_tag
                - ber_write_length
                - Stream_Write_UTF16_String_From_UTF8
        - Branch String:   'libfreerdp/crypto/ber.c:415,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:416,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:417,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:409,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:411,18'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/ber.c:412,10'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:413,10'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:415,6'
          Dst:             Stream_Write_UTF16_String_From_UTF8
    - functionName:    ber_write_contextual_octet_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 405
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - tag
        - oct_str
        - length
      BBCount:         8
      ICount:          72
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ber_sizeof_octet_string
        - ber_write_contextual_tag
        - ber_write_octet_string
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:398,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:399,3'
              BranchSideFuncs:
                - ber_write_octet_string
            - BranchSide:      'libfreerdp/crypto/ber.c:401,29'
              BranchSideFuncs:
                - ber_write_octet_string
        - Branch String:   'libfreerdp/crypto/ber.c:402,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:403,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/ber.c:404,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:393,17'
          Dst:             ber_sizeof_octet_string
        - Src:             'libfreerdp/crypto/ber.c:397,8'
          Dst:             ber_write_contextual_tag
        - Src:             'libfreerdp/crypto/ber.c:401,6'
          Dst:             ber_write_octet_string
    - functionName:    ber_read_bit_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
        - padding
      BBCount:         13
      ICount:          64
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - ber_read_universal_tag
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:362,60'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:362,80'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:363,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:362,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:363,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:365,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
        - Branch String:   'libfreerdp/crypto/ber.c:365,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:366,3'
              BranchSideFuncs:
                - stream_read_u8.246
            - BranchSide:      'libfreerdp/crypto/ber.c:368,2'
              BranchSideFuncs:
                - stream_read_u8.246
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:362,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:362,64'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:365,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:368,2'
          Dst:             stream_read_u8
    - functionName:    ber_write_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 354
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - char
      constantsTouched: []
      argNames:
        - s
        - enumerated
        - count
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8
        - ber_write_length
        - ber_write_universal_tag
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:355,2'
          Dst:             ber_write_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:356,2'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:357,2'
          Dst:             Stream_Write_UINT8
    - functionName:    ber_read_enumerated
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 351
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - s
        - enumerated
        - count
      BBCount:         44
      ICount:          172
      EdgeCount:       53
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - __assert_fail
        - ber_read_universal_tag
        - stream_read_u8
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:328,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:328,2'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:330,30'
              BranchSideFuncs:
                - ber_read_universal_tag
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:330,60'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:330,80'
              BranchSideFuncs:
                - ber_read_length
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:331,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:330,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:331,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:333,6'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:333,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:335,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:338,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:335,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:335,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:335,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:335,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:335,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:335,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:338,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:339,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:341,2'
              BranchSideFuncs:
                - stream_read_u8.246
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:344,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:346,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:350,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:346,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:346,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:346,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:346,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:346,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:346,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:328,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:330,7'
          Dst:             ber_read_universal_tag
        - Src:             'libfreerdp/crypto/ber.c:330,64'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:335,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:335,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:335,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:338,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:341,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:346,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:346,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:346,3'
          Dst:             WLog_PrintMessage
    - functionName:    ber_sizeof_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 320
      functionLinenumberEnd: 321
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - length
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:321,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_sizeof_sequence
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 316
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - length
      BBCount:         3
      ICount:          19
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _ber_sizeof_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:316,13'
          Dst:             _ber_sizeof_length
    - functionName:    ber_write_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 311
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_Write_UINT8
        - ber_write_length
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:310,2'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:311,13'
          Dst:             ber_write_length
    - functionName:    ber_read_sequence_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 300
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - length
      BBCount:         22
      ICount:          94
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - ber_read_length
        - stream_read_u8
      functionUses:    9
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:288,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:289,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:291,2'
              BranchSideFuncs:
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:293,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:295,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:299,25'
              BranchSideFuncs:
                - ber_read_length
        - Branch String:   'libfreerdp/crypto/ber.c:295,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:295,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:295,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:295,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:295,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:295,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:288,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:291,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:295,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:295,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:295,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:299,9'
          Dst:             ber_read_length
    - functionName:    Stream_Rewind
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:135,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:135,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:136,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:137,9'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:138,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:138,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/include/winpr/stream.h:139,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:140,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:142,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:135,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:136,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:138,3'
          Dst:             __assert_fail
    - functionName:    ber_read_contextual_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
        - pc
      BBCount:         40
      ICount:          171
      EdgeCount:       46
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Rewind
        - WLog_Get
        - __assert_fail
        - ber_read_length
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:248,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:248,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingLength
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:249,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingLength
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:249,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:249,2'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:251,32'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:251,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:253,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:258,2'
              BranchSideFuncs:
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:253,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:253,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:253,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_GetRemainingLength
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:253,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:253,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:253,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:260,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:262,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:267,25'
              BranchSideFuncs:
                - ber_read_length
        - Branch String:   'libfreerdp/crypto/ber.c:262,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:262,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:262,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - Stream_Rewind
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:262,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:262,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - Stream_Rewind
            - BranchSide:      'libfreerdp/crypto/ber.c:262,3'
              BranchSideFuncs:
                - Stream_Rewind
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:248,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:249,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:251,6'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/crypto/ber.c:253,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:253,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:253,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'libfreerdp/crypto/ber.c:253,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:258,2'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:262,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:262,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:262,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:263,3'
          Dst:             Stream_Rewind
        - Src:             'libfreerdp/crypto/ber.c:267,9'
          Dst:             ber_read_length
    - functionName:    ber_write_application_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - size_t
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
      BBCount:         15
      ICount:          82
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT8
        - __assert_fail
        - ber_write_length
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:226,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:226,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - ber_write_length
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:228,6'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - ber_write_length
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - ber_write_length
        - Branch String:   'libfreerdp/crypto/ber.c:228,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:230,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:237,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Write_UINT8
                - ber_write_length
        - Branch String:   'libfreerdp/crypto/ber.c:230,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:230,3'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:231,22'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - Stream_Write_UINT8
                - ber_write_length
        - Branch String:   'libfreerdp/crypto/ber.c:237,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:237,3'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - ber_write_length
            - BranchSide:      'libfreerdp/crypto/ber.c:238,22'
              BranchSideFuncs:
                - Stream_Write_UINT8
                - ber_write_length
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:226,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:230,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:230,3'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:231,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:232,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:233,3'
          Dst:             ber_write_length
        - Src:             'libfreerdp/crypto/ber.c:237,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'libfreerdp/crypto/ber.c:237,3'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:238,3'
          Dst:             Stream_Write_UINT8
        - Src:             'libfreerdp/crypto/ber.c:239,3'
          Dst:             ber_write_length
    - functionName:    ber_read_application_tag
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/ber.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - char
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - tag
        - length
      BBCount:         64
      ICount:          256
      EdgeCount:       76
      CyclomaticComplexity: 14
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - WLog_Get
        - __assert_fail
        - ber_read_length
        - stream_read_u8
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/ber.c:168,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:168,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:169,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:169,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:169,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:171,6'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:171,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:173,14'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:198,75'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:175,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:176,4'
              BranchSideFuncs:
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:178,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:180,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:182,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:186,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:182,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:182,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:182,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:182,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:182,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:182,4'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:188,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:190,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:194,26'
              BranchSideFuncs:
                - ber_read_length
        - Branch String:   'libfreerdp/crypto/ber.c:190,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:190,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:190,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:190,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:190,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:190,4'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/ber.c:200,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:201,4'
              BranchSideFuncs:
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:203,3'
              BranchSideFuncs:
                - stream_read_u8.246
                - ber_read_length
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:205,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:207,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:211,26'
              BranchSideFuncs:
                - ber_read_length
        - Branch String:   'libfreerdp/crypto/ber.c:207,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:207,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:207,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/ber.c:207,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/ber.c:207,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/ber.c:207,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/ber.c:168,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:169,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/ber.c:175,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:178,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:182,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:182,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:182,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:186,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:190,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:190,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:190,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:194,10'
          Dst:             ber_read_length
        - Src:             'libfreerdp/crypto/ber.c:200,8'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/ber.c:203,3'
          Dst:             stream_read_u8
        - Src:             'libfreerdp/crypto/ber.c:207,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/ber.c:207,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/ber.c:207,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/ber.c:211,10'
          Dst:             ber_read_length
    - functionName:    object_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 383
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - object
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - _strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:375,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:377,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:380,26'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:373,11'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:380,11'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/x509_utils.c:381,2'
          Dst:             CRYPTO_free
    - functionName:    ASN1_STRING_to_UTF8
      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:    CRYPTO_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    object_list_allocate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 365
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - list
        - allocate_count
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:359,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:359,21'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:359,24'
              BranchSideFuncs:
                - calloc
        - Branch String:   'libfreerdp/crypto/x509_utils.c:359,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:359,6'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:361,26'
              BranchSideFuncs:
                - calloc
        - Branch String:   'libfreerdp/crypto/x509_utils.c:362,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:362,37'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:362,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:361,19'
          Dst:             calloc
    - functionName:    string_list_allocate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 261
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - list
        - allocate_count
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:255,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:255,21'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:255,24'
              BranchSideFuncs:
                - calloc
        - Branch String:   'libfreerdp/crypto/x509_utils.c:255,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:255,6'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:257,34'
              BranchSideFuncs:
                - calloc
        - Branch String:   'libfreerdp/crypto/x509_utils.c:258,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:258,37'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:258,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:257,19'
          Dst:             calloc
    - functionName:    general_name_type_label
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 124
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - general_name_type
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - sprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:125,31'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:126,15'
              BranchSideFuncs:
                - sprintf
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:133,59'
              BranchSideFuncs:
                - sprintf
        - Branch String:   'libfreerdp/crypto/x509_utils.c:125,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:128,35'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:133,59'
              BranchSideFuncs:
                - sprintf
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:133,9'
          Dst:             sprintf
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_GENERAL_NAME_pop_free
      functionSourceFile: '/usr/include/openssl/x509v3.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
        - freefunc
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509v3.h:166,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    OPENSSL_sk_pop_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sk_GENERAL_NAME_value
      functionSourceFile: '/usr/include/openssl/x509v3.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sk
        - idx
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_value
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509v3.h:166,1'
          Dst:             OPENSSL_sk_value
    - functionName:    sk_GENERAL_NAME_num
      functionSourceFile: '/usr/include/openssl/x509v3.h'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_num
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/x509v3.h:166,1'
          Dst:             OPENSSL_sk_num
    - functionName:    verify_cb
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 930
      functionLinenumberEnd: 946
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ok
        - csc
      BBCount:         33
      ICount:          139
      EdgeCount:       38
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - X509_STORE_CTX_get_current_cert
        - X509_STORE_CTX_get_error
        - X509_STORE_CTX_get_error_depth
        - X509_verify_cert_error_string
        - __assert_fail
        - x509_utils_get_subject
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:931,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:931,6'
              BranchSideFuncs:
                - __assert_fail
                - X509_STORE_CTX_get_error
                - X509_STORE_CTX_get_error_depth
                - X509_STORE_CTX_get_current_cert
                - X509_verify_cert_error_string
                - x509_utils_get_subject
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:933,3'
              BranchSideFuncs:
                - __assert_fail
                - X509_STORE_CTX_get_error
                - X509_STORE_CTX_get_error_depth
                - X509_STORE_CTX_get_current_cert
                - X509_verify_cert_error_string
                - x509_utils_get_subject
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:933,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:933,3'
              BranchSideFuncs:
                - X509_STORE_CTX_get_error
                - X509_STORE_CTX_get_error_depth
                - X509_STORE_CTX_get_current_cert
                - X509_verify_cert_error_string
                - x509_utils_get_subject
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:934,38'
              BranchSideFuncs:
                - X509_STORE_CTX_get_error
                - X509_STORE_CTX_get_error_depth
                - X509_STORE_CTX_get_current_cert
                - X509_verify_cert_error_string
                - x509_utils_get_subject
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:940,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:940,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:940,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:940,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:940,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:940,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:942,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:942,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:942,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:942,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:942,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:942,3'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:933,3'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/x509_utils.c:934,13'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:935,14'
          Dst:             X509_STORE_CTX_get_error_depth
        - Src:             'libfreerdp/crypto/x509_utils.c:936,17'
          Dst:             X509_STORE_CTX_get_current_cert
        - Src:             'libfreerdp/crypto/x509_utils.c:937,22'
          Dst:             X509_verify_cert_error_string
        - Src:             'libfreerdp/crypto/x509_utils.c:938,16'
          Dst:             x509_utils_get_subject
        - Src:             'libfreerdp/crypto/x509_utils.c:940,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:940,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:940,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:942,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:942,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:942,3'
          Dst:             WLog_PrintMessage
    - functionName:    X509_STORE_CTX_get_error
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_get_error_depth
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_get_current_cert
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_subject
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 104
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         33
      ICount:          114
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Get
        - X509_get_subject_name
        - crypto_print_name
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:106,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:108,3'
              BranchSideFuncs:
                - X509_get_subject_name
                - crypto_print_name
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:111,52'
              BranchSideFuncs:
                - X509_get_subject_name
                - crypto_print_name
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:108,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:108,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:108,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:108,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:108,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:108,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:112,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:113,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:114,9'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:113,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:113,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:113,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:113,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:113,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:113,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:108,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:108,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:108,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:111,30'
          Dst:             X509_get_subject_name
        - Src:             'libfreerdp/crypto/x509_utils.c:111,12'
          Dst:             crypto_print_name
        - Src:             'libfreerdp/crypto/x509_utils.c:113,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:113,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:113,3'
          Dst:             WLog_PrintMessage
    - functionName:    X509_get_subject_name
      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:    crypto_print_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 74
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         13
      ICount:          85
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - BIO_free_all
        - BIO_number_written
        - BIO_read
        - BIO_s_mem
        - ERR_clear_error
        - X509_NAME_print_ex
        - calloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:78,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:78,61'
              BranchSideFuncs:
                - BIO_number_written
                - calloc
                - BIO_free_all
                - ERR_clear_error
                - BIO_read
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:80,36'
              BranchSideFuncs:
                - BIO_number_written
                - calloc
                - BIO_free_all
                - ERR_clear_error
                - BIO_read
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:81,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:82,4'
              BranchSideFuncs:
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:83,30'
              BranchSideFuncs:
                - calloc
                - BIO_free_all
                - ERR_clear_error
                - BIO_read
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:85,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:86,4'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - BIO_free_all
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:88,3'
              BranchSideFuncs:
                - ERR_clear_error
                - BIO_read
                - BIO_free_all
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:90,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:92,9'
              BranchSideFuncs:
                - free
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:96,2'
              BranchSideFuncs:
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:76,24'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/x509_utils.c:76,16'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/x509_utils.c:78,6'
          Dst:             X509_NAME_print_ex
        - Src:             'libfreerdp/crypto/x509_utils.c:80,17'
          Dst:             BIO_number_written
        - Src:             'libfreerdp/crypto/x509_utils.c:83,12'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:88,3'
          Dst:             ERR_clear_error
        - Src:             'libfreerdp/crypto/x509_utils.c:89,18'
          Dst:             BIO_read
        - Src:             'libfreerdp/crypto/x509_utils.c:99,2'
          Dst:             BIO_free_all
    - functionName:    X509_NAME_print_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_number_written
      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:    x509_utils_verify
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 950
      functionLinenumberEnd: 1020
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
        - chain
        - certificate_store_path
      BBCount:         31
      ICount:          188
      EdgeCount:       41
      CyclomaticComplexity: 12
      functionsReached:
        - OPENSSL_init_crypto
        - X509_LOOKUP_ctrl
        - X509_LOOKUP_hash_dir
        - X509_STORE_CTX_free
        - X509_STORE_CTX_get_error
        - X509_STORE_CTX_init
        - X509_STORE_CTX_new
        - X509_STORE_CTX_set_purpose
        - X509_STORE_CTX_set_verify_cb
        - X509_STORE_free
        - X509_STORE_new
        - X509_STORE_set_default_paths
        - X509_STORE_set_flags
        - X509_verify_cert
        - verify_cb
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:956,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:957,3'
              BranchSideFuncs:
                - X509_STORE_new
                - OPENSSL_init_crypto
                - X509_STORE_set_default_paths
                - X509_LOOKUP_hash_dir
                - X509_STORE_add_lookup
                - X509_LOOKUP_ctrl
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_LOOKUP_ctrl
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:959,25'
              BranchSideFuncs:
                - X509_STORE_new
                - OPENSSL_init_crypto
                - X509_STORE_set_default_paths
                - X509_LOOKUP_hash_dir
                - X509_STORE_add_lookup
                - X509_LOOKUP_ctrl
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_LOOKUP_ctrl
        - Branch String:   'libfreerdp/crypto/x509_utils.c:961,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:962,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:967,2'
              BranchSideFuncs:
                - OPENSSL_init_crypto
                - X509_STORE_set_default_paths
                - X509_LOOKUP_hash_dir
                - X509_STORE_add_lookup
                - X509_LOOKUP_ctrl
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_LOOKUP_ctrl
        - Branch String:   'libfreerdp/crypto/x509_utils.c:972,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:973,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:975,33'
              BranchSideFuncs:
                - X509_LOOKUP_hash_dir
                - X509_STORE_add_lookup
                - X509_LOOKUP_ctrl
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_LOOKUP_ctrl
        - Branch String:   'libfreerdp/crypto/x509_utils.c:977,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:978,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:980,2'
              BranchSideFuncs:
                - X509_LOOKUP_ctrl
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_LOOKUP_ctrl
        - Branch String:   'libfreerdp/crypto/x509_utils.c:982,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:984,3'
              BranchSideFuncs:
                - X509_LOOKUP_ctrl
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:987,23'
              BranchSideFuncs:
                - X509_STORE_set_flags
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
        - Branch String:   'libfreerdp/crypto/x509_utils.c:989,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:991,7'
              BranchSideFuncs:
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:1017,18'
              BranchSideFuncs:
                - X509_STORE_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:996,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:997,4'
              BranchSideFuncs:
                - X509_STORE_CTX_free
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:998,28'
              BranchSideFuncs:
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
        - Branch String:   'libfreerdp/crypto/x509_utils.c:998,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:999,4'
              BranchSideFuncs:
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_STORE_CTX_free
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:1001,30'
              BranchSideFuncs:
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
                - X509_STORE_CTX_free
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
        - Branch String:   'libfreerdp/crypto/x509_utils.c:1008,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:1010,11'
              BranchSideFuncs:
                - X509_STORE_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:1013,12'
              BranchSideFuncs:
                - X509_STORE_free
                - X509_STORE_CTX_new
                - X509_STORE_CTX_init
                - X509_STORE_CTX_free
                - X509_STORE_CTX_set_purpose
                - X509_STORE_CTX_set_verify_cb
                - X509_verify_cert
                - X509_STORE_CTX_get_error
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:959,25'
          Dst:             X509_STORE_new
        - Src:             'libfreerdp/crypto/x509_utils.c:967,2'
          Dst:             OPENSSL_init_crypto
        - Src:             'libfreerdp/crypto/x509_utils.c:972,6'
          Dst:             X509_STORE_set_default_paths
        - Src:             'libfreerdp/crypto/x509_utils.c:975,43'
          Dst:             X509_LOOKUP_hash_dir
        - Src:             'libfreerdp/crypto/x509_utils.c:975,11'
          Dst:             X509_STORE_add_lookup
        - Src:             'libfreerdp/crypto/x509_utils.c:980,2'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:984,3'
          Dst:             X509_LOOKUP_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:987,2'
          Dst:             X509_STORE_set_flags
        - Src:             'libfreerdp/crypto/x509_utils.c:994,9'
          Dst:             X509_STORE_CTX_new
        - Src:             'libfreerdp/crypto/x509_utils.c:998,8'
          Dst:             X509_STORE_CTX_init
        - Src:             'libfreerdp/crypto/x509_utils.c:1001,3'
          Dst:             X509_STORE_CTX_set_purpose
        - Src:             'libfreerdp/crypto/x509_utils.c:1002,3'
          Dst:             X509_STORE_CTX_set_verify_cb
        - Src:             'libfreerdp/crypto/x509_utils.c:1002,3'
          Dst:             verify_cb
        - Src:             'libfreerdp/crypto/x509_utils.c:1004,8'
          Dst:             X509_verify_cert
        - Src:             'libfreerdp/crypto/x509_utils.c:1005,9'
          Dst:             X509_STORE_CTX_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:1007,3'
          Dst:             X509_STORE_CTX_free
        - Src:             'libfreerdp/crypto/x509_utils.c:1017,2'
          Dst:             X509_STORE_free
    - functionName:    X509_STORE_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OPENSSL_init_crypto
      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:    X509_STORE_set_default_paths
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_hash_dir
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_add_lookup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_LOOKUP_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_set_flags
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_set_purpose
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_set_verify_cb
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_verify_cert
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_STORE_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_common_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
        - plength
      BBCount:         17
      ICount:          115
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - X509_NAME_ENTRY_get_data
        - X509_NAME_get_entry
        - X509_NAME_get_index_by_NID
        - X509_get_subject_name
        - _strdup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:901,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:902,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:904,47'
              BranchSideFuncs:
                - X509_NAME_get_index_by_NID
                - X509_NAME_get_entry
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_to_UTF8
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:905,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:906,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:908,53'
              BranchSideFuncs:
                - X509_NAME_get_entry
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_to_UTF8
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:909,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:910,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:912,59'
              BranchSideFuncs:
                - X509_NAME_ENTRY_get_data
                - ASN1_STRING_to_UTF8
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:913,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:914,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:916,8'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:918,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:919,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:921,6'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:921,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:922,22'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:924,37'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:900,28'
          Dst:             X509_get_subject_name
        - Src:             'libfreerdp/crypto/x509_utils.c:904,20'
          Dst:             X509_NAME_get_index_by_NID
        - Src:             'libfreerdp/crypto/x509_utils.c:908,33'
          Dst:             X509_NAME_get_entry
        - Src:             'libfreerdp/crypto/x509_utils.c:912,34'
          Dst:             X509_NAME_ENTRY_get_data
        - Src:             'libfreerdp/crypto/x509_utils.c:917,21'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:924,22'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/x509_utils.c:925,2'
          Dst:             CRYPTO_free
    - functionName:    X509_NAME_get_index_by_NID
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_NAME_get_entry
      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:    X509_NAME_ENTRY_get_data
      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:    hash_nid_to_winpr
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 754
      functionLinenumberEnd: 793
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - hash_nid
      BBCount:         20
      ICount:          98
      EdgeCount:       38
      CyclomaticComplexity: 20
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:755,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:758,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:760,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:762,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:764,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:766,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:768,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:770,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:772,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:774,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:777,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:779,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:781,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:783,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:785,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:787,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:789,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:791,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    get_rsa_pss_digest
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 796
      functionLinenumberEnd: 875
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - alg
      BBCount:         26
      ICount:          200
      EdgeCount:       36
      CyclomaticComplexity: 12
      functionsReached:
        - ASN1_STRING_get0_data
        - ASN1_STRING_length
        - OBJ_obj2nid
        - RSA_PSS_PARAMS_free
        - X509_ALGOR_free
        - X509_ALGOR_get0
        - hash_nid_to_winpr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:814,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:815,3'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:816,13'
              BranchSideFuncs:
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_RSA_PSS_PARAMS
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
        - Branch String:   'libfreerdp/crypto/x509_utils.c:821,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:822,3'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:827,17'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
        - Branch String:   'libfreerdp/crypto/x509_utils.c:828,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:830,22'
              BranchSideFuncs:
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:837,14'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
        - Branch String:   'libfreerdp/crypto/x509_utils.c:833,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:834,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:835,2'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
        - Branch String:   'libfreerdp/crypto/x509_utils.c:838,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:840,22'
              BranchSideFuncs:
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:868,6'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:846,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:847,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:850,7'
              BranchSideFuncs:
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:850,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:851,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:852,24'
              BranchSideFuncs:
                - ASN1_STRING_get0_data
                - ASN1_STRING_length
                - d2i_X509_ALGOR
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:855,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:856,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:859,37'
              BranchSideFuncs:
                - X509_ALGOR_get0
                - OBJ_obj2nid
                - hash_nid_to_winpr
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:861,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:862,4'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:863,2'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:868,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:869,3'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:870,8'
              BranchSideFuncs:
                - RSA_PSS_PARAMS_free
                - X509_ALGOR_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:809,2'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:819,8'
          Dst:             ASN1_STRING_get0_data
        - Src:             'libfreerdp/crypto/x509_utils.c:820,42'
          Dst:             ASN1_STRING_length
        - Src:             'libfreerdp/crypto/x509_utils.c:820,11'
          Dst:             d2i_RSA_PSS_PARAMS
        - Src:             'libfreerdp/crypto/x509_utils.c:831,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:832,38'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:832,20'
          Dst:             hash_nid_to_winpr
        - Src:             'libfreerdp/crypto/x509_utils.c:845,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:846,7'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:853,9'
          Dst:             ASN1_STRING_get0_data
        - Src:             'libfreerdp/crypto/x509_utils.c:854,48'
          Dst:             ASN1_STRING_length
        - Src:             'libfreerdp/crypto/x509_utils.c:854,21'
          Dst:             d2i_X509_ALGOR
        - Src:             'libfreerdp/crypto/x509_utils.c:859,3'
          Dst:             X509_ALGOR_get0
        - Src:             'libfreerdp/crypto/x509_utils.c:860,35'
          Dst:             OBJ_obj2nid
        - Src:             'libfreerdp/crypto/x509_utils.c:860,17'
          Dst:             hash_nid_to_winpr
        - Src:             'libfreerdp/crypto/x509_utils.c:873,2'
          Dst:             RSA_PSS_PARAMS_free
        - Src:             'libfreerdp/crypto/x509_utils.c:874,2'
          Dst:             X509_ALGOR_free
    - functionName:    X509_ALGOR_get0
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_STRING_get0_data
      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:    ASN1_STRING_length
      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:    d2i_RSA_PSS_PARAMS
      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:    OBJ_obj2nid
      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:    d2i_X509_ALGOR
      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:    RSA_PSS_PARAMS_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_ALGOR_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_signature_alg
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 879
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         11
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - OBJ_find_sigid_algs
        - X509_get0_signature
        - X509_get_signature_nid
        - __assert_fail
        - get_rsa_pss_digest
        - hash_nid_to_winpr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:880,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:880,2'
              BranchSideFuncs:
                - X509_get_signature_nid
                - OBJ_find_sigid_algs
                - hash_nid_to_winpr
                - X509_get0_signature
                - get_rsa_pss_digest
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:882,41'
              BranchSideFuncs:
                - X509_get_signature_nid
                - OBJ_find_sigid_algs
                - hash_nid_to_winpr
                - X509_get0_signature
                - get_rsa_pss_digest
        - Branch String:   'libfreerdp/crypto/x509_utils.c:884,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:886,21'
              BranchSideFuncs:
                - X509_get0_signature
                - get_rsa_pss_digest
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:891,6'
              BranchSideFuncs:
                - OBJ_find_sigid_algs
                - hash_nid_to_winpr
        - Branch String:   'libfreerdp/crypto/x509_utils.c:892,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:893,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:895,27'
              BranchSideFuncs:
                - hash_nid_to_winpr
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:880,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/x509_utils.c:882,18'
          Dst:             X509_get_signature_nid
        - Src:             'libfreerdp/crypto/x509_utils.c:887,3'
          Dst:             X509_get0_signature
        - Src:             'libfreerdp/crypto/x509_utils.c:888,10'
          Dst:             get_rsa_pss_digest
        - Src:             'libfreerdp/crypto/x509_utils.c:892,6'
          Dst:             OBJ_find_sigid_algs
        - Src:             'libfreerdp/crypto/x509_utils.c:895,9'
          Dst:             hash_nid_to_winpr
    - functionName:    X509_get_signature_nid
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get0_signature
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OBJ_find_sigid_algs
      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:    x509_utils_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 751
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - data
        - len
        - fromFile
      BBCount:         36
      ICount:          144
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_free_all
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_X509
        - WLog_Get
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:734,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:735,22'
              BranchSideFuncs:
                - BIO_new_file
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:737,25'
              BranchSideFuncs:
                - BIO_new_mem_buf
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:739,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:741,3'
              BranchSideFuncs:
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:745,27'
              BranchSideFuncs:
                - PEM_read_bio_X509
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:741,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:741,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:741,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:741,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:741,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:741,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:747,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:748,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:750,9'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:748,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:748,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:748,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:748,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:748,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:748,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:735,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/x509_utils.c:737,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/x509_utils.c:741,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:741,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:741,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:745,9'
          Dst:             PEM_read_bio_X509
        - Src:             'libfreerdp/crypto/x509_utils.c:746,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/x509_utils.c:748,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:748,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:748,3'
          Dst:             WLog_PrintMessage
    - functionName:    BIO_new_file
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BIO_new_mem_buf
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_X509
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_print_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 589
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         78
      ICount:          257
      EdgeCount:       91
      CyclomaticComplexity: 15
      functionsReached:
        - WLog_Get
        - x509_utils_get_hash
        - x509_utils_get_issuer
        - x509_utils_get_subject
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:597,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:599,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:603,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:599,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:599,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:599,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:599,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:599,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:599,3'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:603,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:603,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:603,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:603,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:603,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:603,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:604,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:604,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:604,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:604,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:604,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:604,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:605,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:605,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:605,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:605,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:605,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:605,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:606,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:606,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:606,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:606,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:606,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:606,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:607,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:607,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:607,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - free
                - free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:607,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:607,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - free
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:607,2'
              BranchSideFuncs:
                - free
                - free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:593,12'
          Dst:             x509_utils_get_subject
        - Src:             'libfreerdp/crypto/x509_utils.c:594,11'
          Dst:             x509_utils_get_issuer
        - Src:             'libfreerdp/crypto/x509_utils.c:595,14'
          Dst:             x509_utils_get_hash
        - Src:             'libfreerdp/crypto/x509_utils.c:599,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:599,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:599,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:603,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:603,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:603,2'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:604,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:604,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:604,2'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:605,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:605,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:605,2'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:606,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:606,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:606,2'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:607,2'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:607,2'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:607,2'
          Dst:             WLog_PrintMessage
    - functionName:    x509_utils_get_issuer
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 551
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
      BBCount:         33
      ICount:          114
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Get
        - X509_get_issuer_name
        - crypto_print_name
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:553,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:555,3'
              BranchSideFuncs:
                - X509_get_issuer_name
                - crypto_print_name
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:558,50'
              BranchSideFuncs:
                - X509_get_issuer_name
                - crypto_print_name
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:555,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:555,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:555,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:555,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:555,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:555,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:559,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:560,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:561,9'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:560,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:560,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:560,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:560,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:560,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:560,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:555,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:555,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:555,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:558,29'
          Dst:             X509_get_issuer_name
        - Src:             'libfreerdp/crypto/x509_utils.c:558,11'
          Dst:             crypto_print_name
        - Src:             'libfreerdp/crypto/x509_utils.c:560,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:560,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:560,3'
          Dst:             WLog_PrintMessage
    - functionName:    x509_utils_get_hash
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - xcert
        - hash
        - length
      BBCount:         63
      ICount:          238
      EdgeCount:       76
      CyclomaticComplexity: 15
      functionsReached:
        - EVP_get_digestbyname
        - WLog_Get
        - X509_digest
        - calloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:44,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:46,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:49,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:46,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:46,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:46,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:46,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:46,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:46,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:49,13'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:49,17'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:49,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:55,14'
              BranchSideFuncs:
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:51,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:51,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:51,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:56,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:58,3'
              BranchSideFuncs:
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:62,18'
              BranchSideFuncs:
                - X509_digest
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:58,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:58,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:58,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:58,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:58,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:58,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:62,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:64,8'
              BranchSideFuncs:
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:69,12'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:65,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:65,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:65,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:65,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:65,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:65,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:43,21'
          Dst:             EVP_get_digestbyname
        - Src:             'libfreerdp/crypto/x509_utils.c:46,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:46,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:46,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:51,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:51,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:51,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:55,7'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:58,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:58,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:58,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:62,6'
          Dst:             X509_digest
        - Src:             'libfreerdp/crypto/x509_utils.c:65,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:65,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:65,3'
          Dst:             WLog_PrintMessage
    - functionName:    EVP_get_digestbyname
      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:    X509_digest
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get_issuer_name
      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:    sk_ASN1_OBJECT_pop_free
      functionSourceFile: '/usr/include/openssl/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
        - freefunc
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_pop_free
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/asn1.h:536,1'
          Dst:             OPENSSL_sk_pop_free
    - functionName:    sk_ASN1_OBJECT_find
      functionSourceFile: '/usr/include/openssl/asn1.h'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - sk
        - ptr
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - OPENSSL_sk_find
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             '/usr/include/openssl/asn1.h:536,1'
          Dst:             OPENSSL_sk_find
    - functionName:    OPENSSL_sk_find
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_check_eku
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 586
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - xcert
        - nid
      BBCount:         13
      ICount:          78
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_OBJECT_free
        - OBJ_nid2obj
        - X509_get_ext_d2i
        - sk_ASN1_OBJECT_find
        - sk_ASN1_OBJECT_pop_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:570,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:571,3'
              BranchSideFuncs:
                - OBJ_nid2obj
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:573,20'
              BranchSideFuncs:
                - OBJ_nid2obj
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:574,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:575,3'
              BranchSideFuncs:
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:577,31'
              BranchSideFuncs:
                - X509_get_ext_d2i
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:578,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:579,3'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:581,26'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_find
                - sk_ASN1_OBJECT_pop_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:581,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:582,7'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:584,26'
              BranchSideFuncs:
                - sk_ASN1_OBJECT_pop_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:573,8'
          Dst:             OBJ_nid2obj
        - Src:             'libfreerdp/crypto/x509_utils.c:577,14'
          Dst:             X509_get_ext_d2i
        - Src:             'libfreerdp/crypto/x509_utils.c:581,6'
          Dst:             sk_ASN1_OBJECT_find
        - Src:             'libfreerdp/crypto/x509_utils.c:584,2'
          Dst:             sk_ASN1_OBJECT_pop_free
        - Src:             'libfreerdp/crypto/x509_utils.c:584,2'
          Dst:             ASN1_OBJECT_free
    - functionName:    OBJ_nid2obj
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get_ext_d2i
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ASN1_OBJECT_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_dns_names
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 512
      functionLinenumberEnd: 548
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
        - count
        - lengths
      BBCount:         15
      ICount:          132
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - map_subject_alt_name
        - string_list_free
        - string_list_initialize
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:519,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:521,3'
              BranchSideFuncs:
                - string_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:527,23'
              BranchSideFuncs:
                - calloc
                - calloc
                - string_list_free
                - free
                - free
                - string_list_free
                - strlen
        - Branch String:   'libfreerdp/crypto/x509_utils.c:530,14'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:530,20'
              BranchSideFuncs:
                - string_list_free
                - free
                - free
                - string_list_free
                - strlen
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:532,3'
              BranchSideFuncs:
                - string_list_free
                - free
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:530,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:532,3'
              BranchSideFuncs:
                - string_list_free
                - strlen
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:540,11'
              BranchSideFuncs:
                - string_list_free
                - strlen
        - Branch String:   'libfreerdp/crypto/x509_utils.c:540,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:542,20'
              BranchSideFuncs:
                - strlen
                - string_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:546,2'
              BranchSideFuncs:
                - string_list_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:515,2'
          Dst:             string_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:516,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:516,2'
          Dst:             extract_string
        - Src:             'libfreerdp/crypto/x509_utils.c:521,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:527,11'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:528,15'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/x509_utils.c:532,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:543,19'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/x509_utils.c:546,2'
          Dst:             string_list_free
    - functionName:    string_list_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 246
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          19
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extract_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - name
        - data
        - index
        - count
      BBCount:         27
      ICount:          170
      EdgeCount:       31
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_STRING_to_UTF8
        - CRYPTO_free
        - ERR_get_error
        - WLog_Get
        - general_name_type_label
        - string_list_allocate
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:277,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:280,10'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - string_list_allocate
                - CRYPTO_free
                - WLog_Get
                - WLog_IsLevelActive
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:284,10'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - string_list_allocate
                - CRYPTO_free
                - WLog_Get
                - WLog_IsLevelActive
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:288,10'
              BranchSideFuncs:
                - ASN1_STRING_to_UTF8
                - string_list_allocate
                - CRYPTO_free
                - WLog_Get
                - WLog_IsLevelActive
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:292,4'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:295,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:297,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:302,23'
              BranchSideFuncs:
                - string_list_allocate
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:297,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:297,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:297,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/x509_utils.c:297,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:297,3'
              BranchSideFuncs:
                - general_name_type_label
                - ERR_get_error
                - ERR_error_string
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:297,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:304,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:306,3'
              BranchSideFuncs:
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:310,38'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:313,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:315,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:318,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:295,7'
          Dst:             ASN1_STRING_to_UTF8
        - Src:             'libfreerdp/crypto/x509_utils.c:297,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/x509_utils.c:297,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/x509_utils.c:297,3'
          Dst:             general_name_type_label
        - Src:             'libfreerdp/crypto/x509_utils.c:297,3'
          Dst:             ERR_get_error
        - Src:             'libfreerdp/crypto/x509_utils.c:297,3'
          Dst:             ERR_error_string
        - Src:             'libfreerdp/crypto/x509_utils.c:297,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/x509_utils.c:302,2'
          Dst:             string_list_allocate
        - Src:             'libfreerdp/crypto/x509_utils.c:306,3'
          Dst:             CRYPTO_free
    - functionName:    map_subject_alt_name
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 187
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
        - general_name_type
        - mapper
        - data
      BBCount:         22
      ICount:          122
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - GENERAL_NAME_free
        - X509_get_ext_d2i
        - sk_GENERAL_NAME_num
        - sk_GENERAL_NAME_pop_free
        - sk_GENERAL_NAME_value
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:192,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:194,3'
              BranchSideFuncs:
                - sk_GENERAL_NAME_num
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:197,28'
              BranchSideFuncs:
                - sk_GENERAL_NAME_num
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
        - Branch String:   'libfreerdp/crypto/x509_utils.c:199,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:201,46'
              BranchSideFuncs:
                - sk_GENERAL_NAME_value
                - sk_GENERAL_NAME_pop_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:215,27'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:203,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:205,9'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:213,2'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
        - Branch String:   'libfreerdp/crypto/x509_utils.c:205,39'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:205,43'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:207,10'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
        - Branch String:   'libfreerdp/crypto/x509_utils.c:205,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:207,10'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:212,3'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
        - Branch String:   'libfreerdp/crypto/x509_utils.c:207,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:209,6'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:211,4'
              BranchSideFuncs:
                - sk_GENERAL_NAME_pop_free
                - sk_GENERAL_NAME_value
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:190,9'
          Dst:             X509_get_ext_d2i
        - Src:             'libfreerdp/crypto/x509_utils.c:197,8'
          Dst:             sk_GENERAL_NAME_num
        - Src:             'libfreerdp/crypto/x509_utils.c:201,24'
          Dst:             sk_GENERAL_NAME_value
        - Src:             'libfreerdp/crypto/x509_utils.c:215,2'
          Dst:             sk_GENERAL_NAME_pop_free
        - Src:             'libfreerdp/crypto/x509_utils.c:215,2'
          Dst:             GENERAL_NAME_free
    - functionName:    string_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GENERAL_NAME_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ERR_get_error
      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:    ERR_error_string
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_dns_names_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 494
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - count
        - lengths
        - dns_names
      BBCount:         13
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached:
        - CRYPTO_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:497,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:497,6'
              BranchSideFuncs:
                - free
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:499,15'
              BranchSideFuncs:
                - free
                - CRYPTO_free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:499,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:501,8'
              BranchSideFuncs:
                - free
                - CRYPTO_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:507,8'
              BranchSideFuncs:
                - free
        - Branch String:   'libfreerdp/crypto/x509_utils.c:501,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:503,5'
              BranchSideFuncs:
                - CRYPTO_free
                - free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:505,3'
              BranchSideFuncs:
                - free
                - CRYPTO_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:503,5'
          Dst:             CRYPTO_free
    - functionName:    x509_utils_get_date
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 467
      functionLinenumberEnd: 491
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - x509
        - startDate
      BBCount:         17
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - ASN1_TIME_print
        - BIO_ctrl
        - BIO_free_all
        - BIO_s_mem
        - X509_get0_notBefore
        - __assert_fail
        - strndup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:468,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:468,2'
              BranchSideFuncs:
                - X509_get0_notAfter
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
                - X509_get0_notBefore
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:470,26'
              BranchSideFuncs:
                - X509_get0_notAfter
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
                - X509_get0_notBefore
        - Branch String:   'libfreerdp/crypto/x509_utils.c:470,26'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:470,58'
              BranchSideFuncs:
                - X509_get0_notBefore
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:470,85'
              BranchSideFuncs:
                - X509_get0_notAfter
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
        - Branch String:   'libfreerdp/crypto/x509_utils.c:471,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:472,3'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:474,22'
              BranchSideFuncs:
                - BIO_s_mem
                - BIO_new
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
        - Branch String:   'libfreerdp/crypto/x509_utils.c:475,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:476,3'
              BranchSideFuncs:
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:478,8'
              BranchSideFuncs:
                - ASN1_TIME_print
                - BIO_free_all
                - BIO_ctrl
                - strndup
        - Branch String:   'libfreerdp/crypto/x509_utils.c:479,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:0,0'
              BranchSideFuncs:
                - BIO_ctrl
                - strndup
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:481,12'
              BranchSideFuncs:
                - BIO_ctrl
                - strndup
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:468,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/x509_utils.c:470,38'
          Dst:             X509_get0_notBefore
        - Src:             'libfreerdp/crypto/x509_utils.c:470,66'
          Dst:             X509_get0_notAfter
        - Src:             'libfreerdp/crypto/x509_utils.c:474,22'
          Dst:             BIO_s_mem
        - Src:             'libfreerdp/crypto/x509_utils.c:474,14'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/x509_utils.c:479,6'
          Dst:             ASN1_TIME_print
        - Src:             'libfreerdp/crypto/x509_utils.c:483,3'
          Dst:             BIO_ctrl
        - Src:             'libfreerdp/crypto/x509_utils.c:484,9'
          Dst:             strndup
        - Src:             'libfreerdp/crypto/x509_utils.c:489,2'
          Dst:             BIO_free_all
    - functionName:    X509_get0_notBefore
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_get0_notAfter
      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:    ASN1_TIME_print
      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:    BIO_ctrl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    strndup
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    object_list_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    extract_othername_object_as_string
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 391
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - name
        - data
        - index
        - count
      BBCount:         15
      ICount:          129
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - OBJ_cmp
        - object_list_allocate
        - object_string
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:394,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:396,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:399,19'
              BranchSideFuncs:
                - OBJ_cmp
                - object_list_allocate
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:399,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:401,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:404,23'
              BranchSideFuncs:
                - object_list_allocate
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:406,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:408,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:411,45'
              BranchSideFuncs:
                - object_string
        - Branch String:   'libfreerdp/crypto/x509_utils.c:413,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:415,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:418,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/x509_utils.c:418,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:420,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:423,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:399,11'
          Dst:             OBJ_cmp
        - Src:             'libfreerdp/crypto/x509_utils.c:404,2'
          Dst:             object_list_allocate
        - Src:             'libfreerdp/crypto/x509_utils.c:411,31'
          Dst:             object_string
    - functionName:    OBJ_cmp
      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:    object_list_initialize
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - list
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    x509_utils_get_upn
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 447
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - OBJ_nid2obj
        - map_subject_alt_name
        - object_list_free
        - object_list_initialize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:455,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:457,3'
              BranchSideFuncs:
                - object_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:461,16'
              BranchSideFuncs:
                - object_list_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:450,2'
          Dst:             object_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:451,17'
          Dst:             OBJ_nid2obj
        - Src:             'libfreerdp/crypto/x509_utils.c:453,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:453,2'
          Dst:             extract_othername_object_as_string
        - Src:             'libfreerdp/crypto/x509_utils.c:457,3'
          Dst:             object_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:462,2'
          Dst:             object_list_free
    - functionName:    x509_utils_get_email
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/x509_utils.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - x509
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CRYPTO_free
        - _strdup
        - map_subject_alt_name
        - string_list_free
        - string_list_initialize
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/x509_utils.c:434,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:436,3'
              BranchSideFuncs:
                - string_list_free
            - BranchSide:      'libfreerdp/crypto/x509_utils.c:440,24'
              BranchSideFuncs:
                - _strdup
                - CRYPTO_free
                - string_list_free
      Callsites:
        - Src:             'libfreerdp/crypto/x509_utils.c:430,2'
          Dst:             string_list_initialize
        - Src:             'libfreerdp/crypto/x509_utils.c:432,2'
          Dst:             map_subject_alt_name
        - Src:             'libfreerdp/crypto/x509_utils.c:432,2'
          Dst:             extract_string
        - Src:             'libfreerdp/crypto/x509_utils.c:436,3'
          Dst:             string_list_free
        - Src:             'libfreerdp/crypto/x509_utils.c:440,11'
          Dst:             _strdup
        - Src:             'libfreerdp/crypto/x509_utils.c:441,2'
          Dst:             CRYPTO_free
        - Src:             'libfreerdp/crypto/x509_utils.c:442,2'
          Dst:             string_list_free
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    x509_from_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 228
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - rsa
      BBCount:         15
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_secmem
        - EVP_PKEY_free
        - PEM_read_bio_PUBKEY
        - PEM_write_bio_RSA_PUBKEY
        - X509_free
        - X509_new
        - X509_set_pubkey
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:202,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:203,3'
              BranchSideFuncs:
                - PEM_write_bio_RSA_PUBKEY
                - PEM_read_bio_PUBKEY
                - BIO_free_all
                - EVP_PKEY_free
                - X509_new
                - X509_set_pubkey
                - X509_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:205,42'
              BranchSideFuncs:
                - PEM_write_bio_RSA_PUBKEY
                - PEM_read_bio_PUBKEY
                - BIO_free_all
                - EVP_PKEY_free
                - X509_new
                - X509_set_pubkey
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:206,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:207,3'
              BranchSideFuncs:
                - BIO_free_all
                - EVP_PKEY_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:209,31'
              BranchSideFuncs:
                - PEM_read_bio_PUBKEY
                - BIO_free_all
                - EVP_PKEY_free
                - X509_new
                - X509_set_pubkey
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:210,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:211,3'
              BranchSideFuncs:
                - X509_new
                - BIO_free_all
                - EVP_PKEY_free
                - X509_set_pubkey
                - X509_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:213,9'
              BranchSideFuncs:
                - X509_new
                - BIO_free_all
                - EVP_PKEY_free
                - X509_set_pubkey
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:214,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:215,3'
              BranchSideFuncs:
                - X509_set_pubkey
                - BIO_free_all
                - EVP_PKEY_free
                - X509_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:217,34'
              BranchSideFuncs:
                - X509_set_pubkey
                - BIO_free_all
                - EVP_PKEY_free
                - X509_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:218,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:218,13'
              BranchSideFuncs:
                - X509_free
                - BIO_free_all
                - EVP_PKEY_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:220,13'
              BranchSideFuncs:
                - X509_free
                - BIO_free_all
                - EVP_PKEY_free
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:199,6'
          Dst:             BIO_s_secmem
        - Src:             'libfreerdp/crypto/cert_common.c:195,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/cert_common.c:205,17'
          Dst:             PEM_write_bio_RSA_PUBKEY
        - Src:             'libfreerdp/crypto/cert_common.c:209,11'
          Dst:             PEM_read_bio_PUBKEY
        - Src:             'libfreerdp/crypto/cert_common.c:213,9'
          Dst:             X509_new
        - Src:             'libfreerdp/crypto/cert_common.c:217,18'
          Dst:             X509_set_pubkey
        - Src:             'libfreerdp/crypto/cert_common.c:220,3'
          Dst:             X509_free
        - Src:             'libfreerdp/crypto/cert_common.c:225,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/cert_common.c:226,2'
          Dst:             EVP_PKEY_free
    - functionName:    BIO_s_secmem
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_write_bio_RSA_PUBKEY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_PUBKEY
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    X509_set_pubkey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    cert_info_read_exponent
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 188
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - info
        - size
        - s
      BBCount:         37
      ICount:          166
      EdgeCount:       45
      CyclomaticComplexity: 10
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Get
        - crypto_reverse
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:172,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:173,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read.464
                - crypto_reverse
                - crypto_reverse
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:174,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read.464
                - crypto_reverse
                - crypto_reverse
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:174,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:176,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:179,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - Stream_Read.464
                - crypto_reverse
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/cert_common.c:176,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:176,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:176,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:176,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:176,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:176,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/cert_common.c:179,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:179,25'
              BranchSideFuncs:
                - Stream_Read.464
                - crypto_reverse
                - crypto_reverse
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:179,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:184,14'
              BranchSideFuncs:
                - Stream_Read.464
                - crypto_reverse
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/cert_common.c:181,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:181,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:181,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:172,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/cert_common.c:176,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/cert_common.c:176,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/cert_common.c:176,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/cert_common.c:181,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/cert_common.c:181,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/cert_common.c:181,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/cert_common.c:184,2'
          Dst:             Stream_Read
        - Src:             'libfreerdp/crypto/cert_common.c:185,2'
          Dst:             crypto_reverse
        - Src:             'libfreerdp/crypto/cert_common.c:186,2'
          Dst:             crypto_reverse
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:577,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:577,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.450
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.450
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.450
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.450
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.450
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.450
        - Branch String:   'winpr/include/winpr/stream.h:579,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_Seek.450
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:577,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:578,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:581,3'
          Dst:             Stream_Seek
    - functionName:    cert_info_allocate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - info
        - size
      BBCount:         24
      ICount:          99
      EdgeCount:       28
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - __assert_fail
        - cert_info_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:141,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:141,2'
              BranchSideFuncs:
                - cert_info_free
                - malloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:142,17'
              BranchSideFuncs:
                - cert_info_free
                - malloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:146,21'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:146,25'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/cert_common.c:151,32'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/cert_common.c:146,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:148,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:151,32'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/cert_common.c:148,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:148,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:148,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:148,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:148,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:148,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:141,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:142,2'
          Dst:             cert_info_free
        - Src:             'libfreerdp/crypto/cert_common.c:148,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/cert_common.c:148,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/cert_common.c:148,3'
          Dst:             WLog_PrintMessage
    - functionName:    cert_info_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 132
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - info
      BBCount:         6
      ICount:          36
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:133,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:133,2'
              BranchSideFuncs:
                - free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:133,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:133,2'
          Dst:             __assert_fail
    - functionName:    cert_info_read_modulus
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - info
        - size
        - s
      BBCount:         22
      ICount:          102
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Read
        - WLog_Get
        - cert_info_allocate
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:157,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:158,3'
              BranchSideFuncs:
                - cert_info_allocate
                - Stream_Read.464
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:159,6'
              BranchSideFuncs:
                - cert_info_allocate
                - Stream_Read.464
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:159,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:161,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:164,26'
              BranchSideFuncs:
                - cert_info_allocate
                - Stream_Read.464
        - Branch String:   'libfreerdp/crypto/cert_common.c:161,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:161,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:161,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/cert_common.c:161,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:161,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/cert_common.c:161,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/cert_common.c:164,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:165,3'
              BranchSideFuncs:
                - Stream_Read.464
            - BranchSide:      'libfreerdp/crypto/cert_common.c:166,14'
              BranchSideFuncs:
                - Stream_Read.464
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:157,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'libfreerdp/crypto/cert_common.c:161,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/cert_common.c:161,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/cert_common.c:161,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/cert_common.c:164,7'
          Dst:             cert_info_allocate
        - Src:             'libfreerdp/crypto/cert_common.c:166,2'
          Dst:             Stream_Read
    - functionName:    cert_info_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - src
      BBCount:         15
      ICount:          97
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:113,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:113,2'
              BranchSideFuncs:
                - __assert_fail
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:114,2'
              BranchSideFuncs:
                - __assert_fail
                - malloc
        - Branch String:   'libfreerdp/crypto/cert_common.c:114,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:114,2'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:116,3'
              BranchSideFuncs:
                - malloc
        - Branch String:   'libfreerdp/crypto/cert_common.c:120,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:122,25'
              BranchSideFuncs:
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:128,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/cert_common.c:123,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:124,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/cert_common.c:125,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:113,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:114,2'
          Dst:             __assert_fail
    - functionName:    cert_info_create
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 89
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dst
        - rsa
        - rsa_e
      BBCount:         15
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - cert_info_free
        - read_bignum
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:92,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:92,2'
              BranchSideFuncs:
                - __assert_fail
                - read_bignum
                - cert_info_free
                - read_bignum
            - BranchSide:      'libfreerdp/crypto/cert_common.c:93,2'
              BranchSideFuncs:
                - __assert_fail
                - read_bignum
                - cert_info_free
                - read_bignum
        - Branch String:   'libfreerdp/crypto/cert_common.c:93,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:93,2'
              BranchSideFuncs:
                - read_bignum
                - cert_info_free
                - read_bignum
            - BranchSide:      'libfreerdp/crypto/cert_common.c:95,3'
              BranchSideFuncs:
                - read_bignum
                - cert_info_free
                - read_bignum
        - Branch String:   'libfreerdp/crypto/cert_common.c:97,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:98,3'
              BranchSideFuncs:
                - read_bignum
                - cert_info_free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:100,9'
              BranchSideFuncs:
                - read_bignum
                - cert_info_free
        - Branch String:   'libfreerdp/crypto/cert_common.c:102,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:103,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/cert_common.c:104,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:92,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:93,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:97,7'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/cert_common.c:102,7'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/cert_common.c:107,2'
          Dst:             cert_info_free
    - functionName:    read_bignum
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/cert_common.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - dst
        - length
        - num
        - alloc
      BBCount:         31
      ICount:          159
      EdgeCount:       38
      CyclomaticComplexity: 9
      functionsReached:
        - BN_bn2bin
        - BN_num_bits
        - __assert_fail
        - crypto_reverse
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/cert_common.c:51,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:51,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:52,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
        - Branch String:   'libfreerdp/crypto/cert_common.c:52,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:52,2'
              BranchSideFuncs:
                - __assert_fail
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:53,2'
              BranchSideFuncs:
                - __assert_fail
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
        - Branch String:   'libfreerdp/crypto/cert_common.c:53,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:53,2'
              BranchSideFuncs:
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
            - BranchSide:      'libfreerdp/crypto/cert_common.c:55,6'
              BranchSideFuncs:
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
                - free
        - Branch String:   'libfreerdp/crypto/cert_common.c:55,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:57,9'
              BranchSideFuncs:
                - free
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:62,18'
              BranchSideFuncs:
                - BN_num_bits
                - BN_bn2bin
                - crypto_reverse
                - malloc
        - Branch String:   'libfreerdp/crypto/cert_common.c:63,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:64,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/cert_common.c:66,7'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
                - malloc
        - Branch String:   'libfreerdp/crypto/cert_common.c:66,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:68,8'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:72,6'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
                - malloc
        - Branch String:   'libfreerdp/crypto/cert_common.c:68,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:69,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/cert_common.c:70,2'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
                - malloc
        - Branch String:   'libfreerdp/crypto/cert_common.c:72,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:74,7'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
                - malloc
            - BranchSide:      'libfreerdp/crypto/cert_common.c:85,2'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/cert_common.c:74,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:76,26'
              BranchSideFuncs:
                - malloc
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/cert_common.c:80,13'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
        - Branch String:   'libfreerdp/crypto/cert_common.c:77,8'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/cert_common.c:78,5'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
            - BranchSide:      'libfreerdp/crypto/cert_common.c:79,3'
              BranchSideFuncs:
                - BN_bn2bin
                - crypto_reverse
      Callsites:
        - Src:             'libfreerdp/crypto/cert_common.c:51,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:52,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:53,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/cert_common.c:62,18'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/cert_common.c:80,3'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/cert_common.c:81,3'
          Dst:             crypto_reverse
    - functionName:    freerdp_key_digest_sign
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 534
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - key
        - digest
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_DigestSign_Init
        - winpr_Digest_Free
        - winpr_Digest_New
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:536,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:537,3'
              BranchSideFuncs:
                - winpr_DigestSign_Init
                - winpr_Digest_Free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:539,29'
              BranchSideFuncs:
                - winpr_DigestSign_Init
                - winpr_Digest_Free
        - Branch String:   'libfreerdp/crypto/privatekey.c:539,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:541,21'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:544,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:535,29'
          Dst:             winpr_Digest_New
        - Src:             'libfreerdp/crypto/privatekey.c:539,7'
          Dst:             winpr_DigestSign_Init
        - Src:             'libfreerdp/crypto/privatekey.c:541,3'
          Dst:             winpr_Digest_Free
    - functionName:    freerdp_key_get_param
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 531
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - param
        - plength
      BBCount:         29
      ICount:          179
      EdgeCount:       34
      CyclomaticComplexity: 7
      functionsReached:
        - BN_bn2bin
        - BN_dup
        - BN_free
        - BN_num_bits
        - EVP_PKEY_get0_RSA
        - RSA_get0_d
        - RSA_get0_e
        - RSA_get0_n
        - __assert_fail
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:449,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:449,2'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_get0_RSA
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
                - RSA_get0_e
                - RSA_get0_d
            - BranchSide:      'libfreerdp/crypto/privatekey.c:450,2'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_get0_RSA
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
                - RSA_get0_e
                - RSA_get0_d
        - Branch String:   'libfreerdp/crypto/privatekey.c:450,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:450,2'
              BranchSideFuncs:
                - EVP_PKEY_get0_RSA
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
                - RSA_get0_e
                - RSA_get0_d
            - BranchSide:      'libfreerdp/crypto/privatekey.c:452,3'
              BranchSideFuncs:
                - EVP_PKEY_get0_RSA
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
                - RSA_get0_e
                - RSA_get0_d
        - Branch String:   'libfreerdp/crypto/privatekey.c:478,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:479,4'
              BranchSideFuncs:
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
                - RSA_get0_e
                - RSA_get0_d
            - BranchSide:      'libfreerdp/crypto/privatekey.c:481,17'
              BranchSideFuncs:
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
                - RSA_get0_e
                - RSA_get0_d
        - Branch String:   'libfreerdp/crypto/privatekey.c:482,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:486,22'
              BranchSideFuncs:
                - RSA_get0_d
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:491,22'
              BranchSideFuncs:
                - RSA_get0_e
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:496,22'
              BranchSideFuncs:
                - RSA_get0_n
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:500,5'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:502,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:503,4'
              BranchSideFuncs:
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:504,15'
              BranchSideFuncs:
                - BN_dup
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:505,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:506,4'
              BranchSideFuncs:
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:510,21'
              BranchSideFuncs:
                - BN_num_bits
                - calloc
                - BN_free
                - BN_bn2bin
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:511,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:512,3'
              BranchSideFuncs:
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:514,36'
              BranchSideFuncs:
                - calloc
                - BN_free
                - BN_bn2bin
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:516,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:517,3'
              BranchSideFuncs:
                - BN_bn2bin
                - BN_free
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:519,30'
              BranchSideFuncs:
                - BN_bn2bin
                - BN_free
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:520,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:522,8'
              BranchSideFuncs:
                - free
                - BN_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:526,14'
              BranchSideFuncs:
                - BN_free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:449,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:450,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:477,20'
          Dst:             EVP_PKEY_get0_RSA
        - Src:             'libfreerdp/crypto/privatekey.c:486,11'
          Dst:             RSA_get0_d
        - Src:             'libfreerdp/crypto/privatekey.c:491,11'
          Dst:             RSA_get0_e
        - Src:             'libfreerdp/crypto/privatekey.c:496,11'
          Dst:             RSA_get0_n
        - Src:             'libfreerdp/crypto/privatekey.c:504,8'
          Dst:             BN_dup
        - Src:             'libfreerdp/crypto/privatekey.c:510,21'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/privatekey.c:515,8'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/privatekey.c:519,20'
          Dst:             BN_bn2bin
        - Src:             'libfreerdp/crypto/privatekey.c:529,2'
          Dst:             BN_free
    - functionName:    EVP_PKEY_get0_RSA
      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:    RSA_get0_d
      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:    RSA_get0_e
      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:    RSA_get0_n
      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:    BN_dup
      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:    freerdp_key_generate
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 378
      functionLinenumberEnd: 443
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - key
        - key_length
      BBCount:         12
      ICount:          107
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - BN_clear_free
        - BN_secure_new
        - BN_set_word
        - EVP_PKEY_assign
        - EVP_PKEY_free
        - EVP_PKEY_new
        - RSA_free
        - RSA_generate_key_ex
        - RSA_new
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:389,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:390,4'
              BranchSideFuncs:
                - RSA_new
                - BN_clear_free
                - BN_set_word
                - RSA_generate_key_ex
                - BN_clear_free
                - EVP_PKEY_free
                - EVP_PKEY_new
                - EVP_PKEY_assign
                - EVP_PKEY_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:392,9'
              BranchSideFuncs:
                - RSA_new
                - BN_clear_free
                - BN_set_word
                - RSA_generate_key_ex
                - BN_clear_free
                - EVP_PKEY_free
                - EVP_PKEY_new
                - EVP_PKEY_assign
                - EVP_PKEY_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:394,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:396,18'
              BranchSideFuncs:
                - BN_set_word
                - RSA_generate_key_ex
                - BN_clear_free
                - EVP_PKEY_free
                - EVP_PKEY_new
                - EVP_PKEY_assign
                - EVP_PKEY_free
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:400,15'
              BranchSideFuncs:
                - BN_set_word
                - RSA_generate_key_ex
                - BN_clear_free
                - EVP_PKEY_free
                - EVP_PKEY_new
                - EVP_PKEY_assign
                - EVP_PKEY_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:404,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:405,4'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:409,16'
              BranchSideFuncs:
                - EVP_PKEY_free
                - EVP_PKEY_new
                - EVP_PKEY_assign
                - EVP_PKEY_free
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:412,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:414,17'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:420,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:387,16'
          Dst:             BN_secure_new
        - Src:             'libfreerdp/crypto/privatekey.c:392,9'
          Dst:             RSA_new
        - Src:             'libfreerdp/crypto/privatekey.c:396,4'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/privatekey.c:400,3'
          Dst:             BN_set_word
        - Src:             'libfreerdp/crypto/privatekey.c:401,19'
          Dst:             RSA_generate_key_ex
        - Src:             'libfreerdp/crypto/privatekey.c:402,3'
          Dst:             BN_clear_free
        - Src:             'libfreerdp/crypto/privatekey.c:409,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:410,13'
          Dst:             EVP_PKEY_new
        - Src:             'libfreerdp/crypto/privatekey.c:412,7'
          Dst:             EVP_PKEY_assign
        - Src:             'libfreerdp/crypto/privatekey.c:414,3'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:416,3'
          Dst:             RSA_free
    - functionName:    BN_secure_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    BN_set_word
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RSA_generate_key_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_PKEY_assign
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    evp_pkey_to_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 94
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         23
      ICount:          105
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - BIO_free_all
        - BIO_new
        - BIO_s_secmem
        - PEM_read_bio_RSAPrivateKey
        - PEM_write_bio_PrivateKey
        - WLog_Get
        - freerdp_key_is_rsa
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:95,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:97,3'
              BranchSideFuncs:
                - BIO_s_secmem
                - BIO_new
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:101,7'
              BranchSideFuncs:
                - BIO_s_secmem
                - BIO_new
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/privatekey.c:97,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:97,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:97,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:97,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:97,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:97,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:109,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:110,3'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:111,42'
              BranchSideFuncs:
                - PEM_write_bio_PrivateKey
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
        - Branch String:   'libfreerdp/crypto/privatekey.c:112,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:113,3'
              BranchSideFuncs:
                - BIO_free_all
            - BranchSide:      'libfreerdp/crypto/privatekey.c:114,35'
              BranchSideFuncs:
                - PEM_read_bio_RSAPrivateKey
                - BIO_free_all
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:95,7'
          Dst:             freerdp_key_is_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:97,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:97,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:97,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/privatekey.c:106,6'
          Dst:             BIO_s_secmem
        - Src:             'libfreerdp/crypto/privatekey.c:102,13'
          Dst:             BIO_new
        - Src:             'libfreerdp/crypto/privatekey.c:111,17'
          Dst:             PEM_write_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:114,8'
          Dst:             PEM_read_bio_RSAPrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:116,2'
          Dst:             BIO_free_all
    - functionName:    freerdp_key_is_rsa
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 351
      functionLinenumberEnd: 358
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         12
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_PKEY_id
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:352,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:352,2'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_id
            - BranchSide:      'libfreerdp/crypto/privatekey.c:353,6'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_id
        - Branch String:   'libfreerdp/crypto/privatekey.c:353,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:354,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:356,2'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_id
        - Branch String:   'libfreerdp/crypto/privatekey.c:356,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:356,2'
              BranchSideFuncs:
                - EVP_PKEY_id
            - BranchSide:      'libfreerdp/crypto/privatekey.c:357,22'
              BranchSideFuncs:
                - EVP_PKEY_id
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:352,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:356,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:357,10'
          Dst:             EVP_PKEY_id
    - functionName:    PEM_write_bio_PrivateKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_RSAPrivateKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      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:    freerdp_key_get_bits
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 374
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - RSA_bits
        - RSA_free
        - evp_pkey_to_rsa
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:365,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:365,6'
              BranchSideFuncs:
                - RSA_bits
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:367,17'
              BranchSideFuncs:
                - RSA_bits
                - RSA_free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:364,13'
          Dst:             evp_pkey_to_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:367,8'
          Dst:             RSA_bits
        - Src:             'libfreerdp/crypto/privatekey.c:368,3'
          Dst:             RSA_free
    - functionName:    RSA_bits
      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:    freerdp_key_get_evp_pkey
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 347
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         9
      ICount:          44
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_PKEY_up_ref
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:342,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:342,2'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:344,18'
              BranchSideFuncs:
                - __assert_fail
                - EVP_PKEY_up_ref
        - Branch String:   'libfreerdp/crypto/privatekey.c:345,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:345,2'
              BranchSideFuncs:
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:345,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:342,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:345,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:346,2'
          Dst:             EVP_PKEY_up_ref
    - functionName:    EVP_PKEY_up_ref
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    freerdp_key_get_exponent
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 326
      functionLinenumberEnd: 338
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
        - plength
      BBCount:         15
      ICount:          70
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - freerdp_key_is_rsa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:327,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:327,2'
              BranchSideFuncs:
                - freerdp_key_is_rsa
            - BranchSide:      'libfreerdp/crypto/privatekey.c:328,26'
              BranchSideFuncs:
                - freerdp_key_is_rsa
        - Branch String:   'libfreerdp/crypto/privatekey.c:328,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:330,7'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:335,6'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:330,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:331,5'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:332,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:335,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:336,14'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:337,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:327,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:328,7'
          Dst:             freerdp_key_is_rsa
    - functionName:    freerdp_key_get_info
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         9
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - freerdp_key_is_rsa
      functionUses:    1
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:319,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:319,2'
              BranchSideFuncs:
                - freerdp_key_is_rsa
            - BranchSide:      'libfreerdp/crypto/privatekey.c:320,26'
              BranchSideFuncs:
                - freerdp_key_is_rsa
        - Branch String:   'libfreerdp/crypto/privatekey.c:320,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:321,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:322,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:319,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:320,7'
          Dst:             freerdp_key_is_rsa
    - functionName:    freerdp_key_clone
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 264
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         21
      ICount:          138
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - EVP_PKEY_up_ref
        - calloc
        - cert_info_clone
        - freerdp_key_free
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:265,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:266,3'
              BranchSideFuncs:
                - calloc
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:268,40'
              BranchSideFuncs:
                - calloc
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
        - Branch String:   'libfreerdp/crypto/privatekey.c:270,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:271,3'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
            - BranchSide:      'libfreerdp/crypto/privatekey.c:273,6'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
                - malloc
                - EVP_PKEY_up_ref
        - Branch String:   'libfreerdp/crypto/privatekey.c:273,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:275,15'
              BranchSideFuncs:
                - freerdp_key_free
                - EVP_PKEY_up_ref
                - cert_info_clone
                - malloc
            - BranchSide:      'libfreerdp/crypto/privatekey.c:281,6'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
                - malloc
        - Branch String:   'libfreerdp/crypto/privatekey.c:276,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:277,4'
              BranchSideFuncs:
                - EVP_PKEY_up_ref
                - cert_info_clone
                - freerdp_key_free
                - malloc
            - BranchSide:      'libfreerdp/crypto/privatekey.c:278,19'
              BranchSideFuncs:
                - EVP_PKEY_up_ref
                - cert_info_clone
                - freerdp_key_free
                - malloc
        - Branch String:   'libfreerdp/crypto/privatekey.c:281,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:283,41'
              BranchSideFuncs:
                - malloc
                - freerdp_key_free
                - cert_info_clone
            - BranchSide:      'libfreerdp/crypto/privatekey.c:292,24'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:285,7'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:286,4'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:288,3'
              BranchSideFuncs:
                - cert_info_clone
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:292,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:293,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:295,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:268,40'
          Dst:             calloc
        - Src:             'libfreerdp/crypto/privatekey.c:278,3'
          Dst:             EVP_PKEY_up_ref
        - Src:             'libfreerdp/crypto/privatekey.c:292,7'
          Dst:             cert_info_clone
        - Src:             'libfreerdp/crypto/privatekey.c:299,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_free
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 305
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_PKEY_free
        - cert_info_free
      functionUses:    3
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:306,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:307,3'
              BranchSideFuncs:
                - EVP_PKEY_free
                - free
                - cert_info_free
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:309,16'
              BranchSideFuncs:
                - EVP_PKEY_free
                - free
                - cert_info_free
                - free
        - Branch String:   'libfreerdp/crypto/privatekey.c:310,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:311,10'
              BranchSideFuncs:
                - free
                - cert_info_free
                - free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:312,7'
              BranchSideFuncs:
                - free
                - cert_info_free
                - free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:309,2'
          Dst:             EVP_PKEY_free
        - Src:             'libfreerdp/crypto/privatekey.c:313,2'
          Dst:             cert_info_free
    - functionName:    freerdp_key_new_from_file
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - keyfile
      BBCount:         14
      ICount:          71
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - evp_pkey_utils_from_pem
        - freerdp_key_free
        - freerdp_key_new
        - key_read_private
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:244,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:244,15'
              BranchSideFuncs:
                - freerdp_key_free
                - strlen
                - evp_pkey_utils_from_pem
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:245,3'
              BranchSideFuncs:
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:244,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:245,3'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:247,37'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
        - Branch String:   'libfreerdp/crypto/privatekey.c:248,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:249,3'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:250,24'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:250,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:251,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:252,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:243,23'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/crypto/privatekey.c:247,46'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:247,13'
          Dst:             evp_pkey_utils_from_pem
        - Src:             'libfreerdp/crypto/privatekey.c:250,7'
          Dst:             key_read_private
        - Src:             'libfreerdp/crypto/privatekey.c:254,2'
          Dst:             freerdp_key_free
    - functionName:    freerdp_key_new
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 260
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:260,9'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:260,9'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'libfreerdp/crypto/privatekey.c:260,9'
              BranchSideFuncs:
                - calloc
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:260,9'
          Dst:             calloc
    - functionName:    evp_pkey_utils_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - data
        - len
        - fromFile
      BBCount:         36
      ICount:          144
      EdgeCount:       43
      CyclomaticComplexity: 9
      functionsReached:
        - BIO_free_all
        - BIO_new_file
        - BIO_new_mem_buf
        - PEM_read_bio_PrivateKey
        - WLog_Get
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:125,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:126,22'
              BranchSideFuncs:
                - BIO_new_file
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:128,25'
              BranchSideFuncs:
                - BIO_new_mem_buf
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:130,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:132,3'
              BranchSideFuncs:
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:136,32'
              BranchSideFuncs:
                - PEM_read_bio_PrivateKey
                - BIO_free_all
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:132,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:132,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:132,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:132,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:132,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:132,3'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:138,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:139,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:141,9'
              BranchSideFuncs: []
        - Branch String:   'libfreerdp/crypto/privatekey.c:139,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:139,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:139,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:139,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:139,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:139,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:126,9'
          Dst:             BIO_new_file
        - Src:             'libfreerdp/crypto/privatekey.c:128,9'
          Dst:             BIO_new_mem_buf
        - Src:             'libfreerdp/crypto/privatekey.c:132,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:132,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:132,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/privatekey.c:136,8'
          Dst:             PEM_read_bio_PrivateKey
        - Src:             'libfreerdp/crypto/privatekey.c:137,2'
          Dst:             BIO_free_all
        - Src:             'libfreerdp/crypto/privatekey.c:139,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:139,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:139,3'
          Dst:             WLog_PrintMessage
    - functionName:    key_read_private
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - key
      BBCount:         73
      ICount:          283
      EdgeCount:       85
      CyclomaticComplexity: 14
      functionsReached:
        - BN_num_bits
        - RSA_check_key
        - RSA_free
        - RSA_get0_key
        - WLog_Get
        - __assert_fail
        - __errno_location
        - cert_info_create
        - evp_pkey_to_rsa
        - freerdp_key_is_rsa
        - read_bignum
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:148,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:148,2'
              BranchSideFuncs:
                - __assert_fail
                - freerdp_key_is_rsa
                - evp_pkey_to_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:149,2'
              BranchSideFuncs:
                - __assert_fail
                - freerdp_key_is_rsa
                - evp_pkey_to_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:149,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:149,2'
              BranchSideFuncs:
                - freerdp_key_is_rsa
                - evp_pkey_to_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:152,26'
              BranchSideFuncs:
                - freerdp_key_is_rsa
                - evp_pkey_to_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:152,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:153,3'
              BranchSideFuncs:
                - evp_pkey_to_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:156,29'
              BranchSideFuncs:
                - evp_pkey_to_rsa
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:157,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:159,8'
              BranchSideFuncs:
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - RSA_free
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:165,24'
              BranchSideFuncs:
                - RSA_check_key
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - RSA_free
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:160,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:160,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:160,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:160,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:160,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:160,3'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:165,2'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:168,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:173,4'
              BranchSideFuncs:
                - RSA_get0_key
                - BN_num_bits
                - read_bignum
                - RSA_free
                - cert_info_create
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:177,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:168,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:168,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:168,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:168,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:168,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:168,4'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:178,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:178,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:178,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:178,4'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:178,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:178,4'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:201,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:203,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:207,20'
              BranchSideFuncs:
                - read_bignum
                - RSA_free
                - cert_info_create
        - Branch String:   'libfreerdp/crypto/privatekey.c:203,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:203,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - RSA_free
                - WLog_PrintMessage
            - BranchSide:      'libfreerdp/crypto/privatekey.c:203,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - RSA_free
                - WLog_PrintMessage
        - Branch String:   'libfreerdp/crypto/privatekey.c:203,3'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:203,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:203,3'
              BranchSideFuncs:
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:207,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:208,3'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:210,25'
              BranchSideFuncs:
                - cert_info_create
                - RSA_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:210,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:211,3'
              BranchSideFuncs:
                - RSA_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:212,5'
              BranchSideFuncs:
                - RSA_free
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:148,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:149,2'
          Dst:             __assert_fail
        - Src:             'libfreerdp/crypto/privatekey.c:152,7'
          Dst:             freerdp_key_is_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:156,13'
          Dst:             evp_pkey_to_rsa
        - Src:             'libfreerdp/crypto/privatekey.c:160,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:160,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:160,3'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/privatekey.c:160,3'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/privatekey.c:160,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/privatekey.c:165,10'
          Dst:             RSA_check_key
        - Src:             'libfreerdp/crypto/privatekey.c:168,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:168,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:168,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/privatekey.c:178,4'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:178,4'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:178,4'
          Dst:             __errno_location
        - Src:             'libfreerdp/crypto/privatekey.c:178,4'
          Dst:             winpr_strerror
        - Src:             'libfreerdp/crypto/privatekey.c:178,4'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/privatekey.c:188,2'
          Dst:             RSA_get0_key
        - Src:             'libfreerdp/crypto/privatekey.c:201,6'
          Dst:             BN_num_bits
        - Src:             'libfreerdp/crypto/privatekey.c:203,3'
          Dst:             WLog_Get
        - Src:             'libfreerdp/crypto/privatekey.c:203,3'
          Dst:             WLog_IsLevelActive
        - Src:             'libfreerdp/crypto/privatekey.c:203,3'
          Dst:             WLog_PrintMessage
        - Src:             'libfreerdp/crypto/privatekey.c:207,7'
          Dst:             read_bignum
        - Src:             'libfreerdp/crypto/privatekey.c:210,7'
          Dst:             cert_info_create
        - Src:             'libfreerdp/crypto/privatekey.c:215,2'
          Dst:             RSA_free
    - functionName:    RSA_check_key
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PEM_read_bio_PrivateKey
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      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:    freerdp_key_new_from_pem
      functionSourceFile: '/src/FreeRDP/libfreerdp/crypto/privatekey.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pem
      BBCount:         14
      ICount:          71
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - evp_pkey_utils_from_pem
        - freerdp_key_free
        - freerdp_key_new
        - key_read_private
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'libfreerdp/crypto/privatekey.c:227,11'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:227,15'
              BranchSideFuncs:
                - freerdp_key_free
                - strlen
                - evp_pkey_utils_from_pem
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:228,3'
              BranchSideFuncs:
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:227,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:228,3'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
            - BranchSide:      'libfreerdp/crypto/privatekey.c:229,37'
              BranchSideFuncs:
                - strlen
                - evp_pkey_utils_from_pem
                - freerdp_key_free
                - key_read_private
        - Branch String:   'libfreerdp/crypto/privatekey.c:230,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:231,3'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
            - BranchSide:      'libfreerdp/crypto/privatekey.c:232,24'
              BranchSideFuncs:
                - key_read_private
                - freerdp_key_free
        - Branch String:   'libfreerdp/crypto/privatekey.c:232,6'
          Branch Sides:
            - BranchSide:      'libfreerdp/crypto/privatekey.c:233,3'
              BranchSideFuncs: []
            - BranchSide:      'libfreerdp/crypto/privatekey.c:234,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'libfreerdp/crypto/privatekey.c:226,23'
          Dst:             freerdp_key_new
        - Src:             'libfreerdp/crypto/privatekey.c:229,42'
          Dst:             strlen
        - Src:             'libfreerdp/crypto/privatekey.c:229,13'
          Dst:             evp_pkey_utils_from_pem
        - Src:             'libfreerdp/crypto/privatekey.c:232,7'
          Dst:             key_read_private
        - Src:             'libfreerdp/crypto/privatekey.c:236,2'
          Dst:             freerdp_key_free
    - functionName:    FileTimeToUS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 557
      functionLinenumberEnd: 562
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ft
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    filetimeToTimespec
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ftime
      BBCount:         6
      ICount:          44
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - FileTimeToUS
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:568,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:568,2'
              BranchSideFuncs:
                - FileTimeToUS
            - BranchSide:      'winpr/libwinpr/file/file.c:568,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:568,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/file/file.c:569,15'
          Dst:             FileTimeToUS
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    FileGetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpFileInformation
      BBCount:         41
      ICount:          326
      EdgeCount:       53
      CyclomaticComplexity: 14
      functionsReached:
        - WLog_Get
        - __errno_location
        - fileno
        - strlen
        - strrchr
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:334,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:335,3'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:336,7'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:336,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:337,3'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:339,19'
              BranchSideFuncs:
                - fileno
                - fstat64
                - strrchr
                - strlen
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:341,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:347,2'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/file.c:342,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:342,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:342,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:342,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:342,3'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:342,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:349,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:350,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/file.c:352,6'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/file.c:352,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:353,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/file.c:355,20'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/file.c:357,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:359,22'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/file/file.c:366,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:362,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:362,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:364,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:362,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:362,45'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:364,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:362,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:363,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:364,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:366,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:367,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:372,7'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:339,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:339,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:342,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:342,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:342,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:342,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:342,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:342,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:355,12'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/file.c:360,26'
          Dst:             strlen
    - 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:    12
      BranchProfiles:  []
      Callsites:       []
    - functionName:    fstat64
      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:    3
      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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileSetFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 578
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCreationTime
        - lpLastAccessTime
        - lpLastWriteTime
      BBCount:         14
      ICount:          107
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fileno
        - filetimeToTimespec
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:583,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:584,3'
              BranchSideFuncs:
                - fileno
                - futimens
                - filetimeToTimespec
                - filetimeToTimespec
            - BranchSide:      'winpr/libwinpr/file/file.c:586,6'
              BranchSideFuncs:
                - fileno
                - futimens
                - filetimeToTimespec
                - filetimeToTimespec
        - Branch String:   'winpr/libwinpr/file/file.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:587,3'
              BranchSideFuncs:
                - filetimeToTimespec
                - fileno
                - futimens
                - filetimeToTimespec
            - BranchSide:      'winpr/libwinpr/file/file.c:589,6'
              BranchSideFuncs:
                - fileno
                - futimens
                - filetimeToTimespec
        - Branch String:   'winpr/libwinpr/file/file.c:589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:590,3'
              BranchSideFuncs:
                - filetimeToTimespec
                - fileno
                - futimens
            - BranchSide:      'winpr/libwinpr/file/file.c:593,33'
              BranchSideFuncs:
                - fileno
                - futimens
        - Branch String:   'winpr/libwinpr/file/file.c:594,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:595,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:597,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:587,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:590,14'
          Dst:             filetimeToTimespec
        - Src:             'winpr/libwinpr/file/file.c:593,26'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:593,17'
          Dst:             futimens
    - functionName:    futimens
      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:    FileUnlockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 509
      functionLinenumberEnd: 554
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwReserved
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
        - lpOverlapped
      BBCount:         48
      ICount:          195
      EdgeCount:       58
      CyclomaticComplexity: 12
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - fileno
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:515,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:517,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:522,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:517,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:517,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:517,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:517,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:517,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:517,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:522,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:523,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:525,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:525,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:527,3'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:544,19'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:527,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:527,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:527,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:527,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:527,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:527,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:544,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:546,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:553,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:547,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:547,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:547,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:547,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:547,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:547,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:517,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:517,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:517,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:518,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:527,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:527,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:527,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:544,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:544,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:547,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:547,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:547,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:547,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:547,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:547,3'
          Dst:             WLog_PrintMessage
    - functionName:    flock
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileUnlockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFileOffsetLow
        - dwFileOffsetHigh
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
      BBCount:         34
      ICount:          152
      EdgeCount:       41
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Get
        - __errno_location
        - fileno
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:472,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:473,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:475,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:475,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:477,3'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:495,19'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:477,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:477,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:477,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:477,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:477,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:477,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:495,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:497,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:504,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:498,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:498,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:498,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:498,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:498,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:498,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:477,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:477,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:477,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:495,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:495,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:498,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:498,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:498,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:498,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:498,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:498,3'
          Dst:             WLog_PrintMessage
    - functionName:    FileLockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwFlags
        - dwReserved
        - nNumberOfBytesToLockLow
        - nNumberOfBytesToLockHigh
        - lpOverlapped
      BBCount:         54
      ICount:          233
      EdgeCount:       66
      CyclomaticComplexity: 14
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - fileno
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:403,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:405,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:410,7'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:405,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:405,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:405,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:405,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:405,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:405,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:410,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:411,3'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:413,6'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:413,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:415,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:442,6'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:415,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:415,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:415,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:415,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:415,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:415,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:442,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:443,8'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:445,8'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:447,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:448,8'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:450,19'
              BranchSideFuncs:
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:450,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:452,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:459,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:453,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:453,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:453,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:453,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:453,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:453,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:405,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:405,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:405,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:406,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:415,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:415,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:415,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:450,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:450,6'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:453,3'
          Dst:             WLog_PrintMessage
    - functionName:    FileSetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - liDistanceToMove
        - lpNewFilePointer
        - dwMoveMethod
      BBCount:         28
      ICount:          144
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - __errno_location
        - fseeko64
        - ftello64
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:171,3'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:173,10'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:173,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:176,11'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:179,11'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:182,11'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:185,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:190,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:196,6'
              BranchSideFuncs:
                - ftello64
        - Branch String:   'winpr/libwinpr/file/file.c:191,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:191,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:191,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:191,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:191,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:191,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:197,32'
              BranchSideFuncs:
                - ftello64
            - BranchSide:      'winpr/libwinpr/file/file.c:199,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:188,6'
          Dst:             fseeko64
        - Src:             'winpr/libwinpr/file/file.c:191,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:191,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:191,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:191,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:191,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:191,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:197,32'
          Dst:             ftello64
    - functionName:    FileSetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 162
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - lDistanceToMove
        - lpDistanceToMoveHigh
        - dwMoveMethod
      BBCount:         28
      ICount:          159
      EdgeCount:       32
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - __errno_location
        - fseeko64
        - ftello64
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:126,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:127,3'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:131,6'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:131,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:133,30'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:136,12'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:138,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:141,11'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:144,11'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:147,11'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:150,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:153,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:155,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:161,16'
              BranchSideFuncs:
                - ftello64
        - Branch String:   'winpr/libwinpr/file/file.c:156,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:156,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:156,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:156,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:156,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:156,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:153,6'
          Dst:             fseeko64
        - Src:             'winpr/libwinpr/file/file.c:156,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:156,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:156,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:156,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:156,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:156,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:161,16'
          Dst:             ftello64
    - functionName:    FileSetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         22
      ICount:          113
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - fileno
        - ftello64
        - map_posix_err
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:100,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:101,3'
              BranchSideFuncs:
                - ftello64
                - fileno
                - ftruncate64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:103,21'
              BranchSideFuncs:
                - ftello64
                - fileno
                - ftruncate64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:104,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:105,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:107,23'
              BranchSideFuncs:
                - fileno
                - ftruncate64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:107,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:109,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:116,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:110,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:110,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:110,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:110,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:110,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:110,3'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:103,21'
          Dst:             ftello64
        - Src:             'winpr/libwinpr/file/file.c:107,16'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:107,6'
          Dst:             ftruncate64
        - Src:             'winpr/libwinpr/file/file.c:110,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:110,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:110,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:110,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:110,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:110,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:112,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:112,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:112,3'
          Dst:             SetLastError
    - functionName:    ftruncate64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    map_posix_err
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 750
      functionLinenumberEnd: 808
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fs_errno
      BBCount:         33
      ICount:          135
      EdgeCount:       34
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_Get
        - winpr_strerror
      functionUses:    10
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:755,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:758,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:765,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:765,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:765,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:765,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:771,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:771,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:771,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:775,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:779,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:783,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:787,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:791,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:795,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:800,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:801,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:801,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:801,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:801,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:801,4'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:801,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:801,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:801,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:801,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:801,4'
          Dst:             WLog_PrintMessage
    - functionName:    FileGetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 324
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpFileSizeHigh
      BBCount:         65
      ICount:          296
      EdgeCount:       79
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - __errno_location
        - fseeko64
        - ftello64
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:279,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:280,3'
              BranchSideFuncs:
                - ftello64
                - fseeko64
                - ftello64
                - fseeko64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:282,22'
              BranchSideFuncs:
                - ftello64
                - fseeko64
                - ftello64
                - fseeko64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:286,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:288,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:294,6'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - fseeko64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:289,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:289,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:289,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:289,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:289,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:289,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:294,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:296,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:302,9'
              BranchSideFuncs:
                - ftello64
                - fseeko64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:297,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:297,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:297,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:297,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:297,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:297,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:304,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:306,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:312,6'
              BranchSideFuncs:
                - fseeko64
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:307,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:307,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:307,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:307,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:307,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:307,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:312,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:314,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:320,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:315,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:315,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:315,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:315,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:315,3'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:315,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:320,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:321,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:323,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:284,8'
          Dst:             ftello64
        - Src:             'winpr/libwinpr/file/file.c:289,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:289,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:289,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:289,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:289,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:289,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:294,6'
          Dst:             fseeko64
        - Src:             'winpr/libwinpr/file/file.c:297,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:297,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:297,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:297,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:297,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:297,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:302,9'
          Dst:             ftello64
        - Src:             'winpr/libwinpr/file/file.c:307,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:307,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:307,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:307,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:307,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:307,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:312,6'
          Dst:             fseeko64
        - Src:             'winpr/libwinpr/file/file.c:315,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:315,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:315,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:315,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:315,3'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:315,3'
          Dst:             WLog_PrintMessage
    - functionName:    FileWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 245
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         25
      ICount:          133
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - clearerr
        - ferror
        - fwrite
        - map_posix_err
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:249,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:251,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:256,7'
              BranchSideFuncs:
                - clearerr
                - fwrite
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:251,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:251,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:251,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:251,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:251,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:251,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:256,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:257,3'
              BranchSideFuncs:
                - clearerr
                - fwrite
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:259,22'
              BranchSideFuncs:
                - clearerr
                - fwrite
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:263,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:263,31'
              BranchSideFuncs:
                - ferror
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:269,35'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:263,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:265,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:269,35'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:251,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:251,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:251,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:252,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:261,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:262,14'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/file/file.c:263,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:265,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:265,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:265,3'
          Dst:             SetLastError
    - functionName:    clearerr
      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:    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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 241
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         31
      ICount:          159
      EdgeCount:       37
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - clearerr
        - ferror
        - fread
        - map_posix_err
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:211,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:216,7'
              BranchSideFuncs:
                - clearerr
                - fread
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:211,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:211,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:211,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:211,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:211,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:211,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:216,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:217,3'
              BranchSideFuncs:
                - clearerr
                - fread
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:219,22'
              BranchSideFuncs:
                - clearerr
                - fread
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:223,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:223,31'
              BranchSideFuncs:
                - ferror
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:237,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:223,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:225,10'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:237,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:227,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:230,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:233,32'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:238,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:240,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:211,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:212,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:220,2'
          Dst:             clearerr
        - Src:             'winpr/libwinpr/file/file.c:221,14'
          Dst:             fread
        - Src:             'winpr/libwinpr/file/file.c:223,24'
          Dst:             ferror
        - Src:             'winpr/libwinpr/file/file.c:227,11'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:230,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:233,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:233,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:233,5'
          Dst:             SetLastError
    - functionName:    FileGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 72
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FileIsHandled
        - fileno
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:68,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:69,3'
              BranchSideFuncs:
                - fileno
            - BranchSide:      'winpr/libwinpr/file/file.c:71,16'
              BranchSideFuncs:
                - fileno
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:68,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:71,9'
          Dst:             fileno
    - functionName:    FileIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:61,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    FileCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         12
      ICount:          70
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - FileIsHandled
        - fclose
        - fileno
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:78,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:79,3'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
            - BranchSide:      'winpr/libwinpr/file/file.c:81,6'
              BranchSideFuncs:
                - free
                - free
                - fileno
                - fclose
        - Branch String:   'winpr/libwinpr/file/file.c:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:84,14'
              BranchSideFuncs:
                - fileno
                - free
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/file/file.c:91,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:86,17'
              BranchSideFuncs:
                - fclose
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:89,2'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:78,7'
          Dst:             FileIsHandled
        - Src:             'winpr/libwinpr/file/file.c:84,7'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:86,10'
          Dst:             fclose
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - _handle
        - _type
        - _mode
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileGetMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 747
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwDesiredAccess
        - dwCreationDisposition
        - create
      BBCount:         8
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 8
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:726,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:729,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:732,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:735,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:738,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:741,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:744,5'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    FileCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 970
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - dwDesiredAccess
        - dwShareMode
        - lpSecurityAttributes
        - dwCreationDisposition
        - dwFlagsAndAttributes
        - hTemplateFile
      BBCount:         69
      ICount:          461
      EdgeCount:       90
      CyclomaticComplexity: 23
      functionsReached:
        - FileCloseHandle
        - FileGetMode
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Get
        - __errno_location
        - _strdup
        - calloc
        - fileno
        - freopen64
        - map_posix_err
        - setvbuf
        - stat64
        - winpr_fopen
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:827,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:829,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:834,23'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE
                - _strdup
                - SetLastError
                - free
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - stat64
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:829,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:829,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:829,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:829,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:829,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:829,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:835,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:837,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE
                - _strdup
                - SetLastError
                - free
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - stat64
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:841,33'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE
                - _strdup
                - SetLastError
                - free
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - stat64
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:845,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:847,3'
              BranchSideFuncs:
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - stat64
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:852,22'
              BranchSideFuncs:
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - stat64
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:859,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:861,7'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - stat64
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:885,12'
              BranchSideFuncs:
                - stat64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:861,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:863,13'
              BranchSideFuncs:
                - stat64
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:872,20'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/file/file.c:863,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:865,5'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:870,3'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/file/file.c:873,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:875,31'
              BranchSideFuncs:
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/file/file.c:881,16'
              BranchSideFuncs:
                - freopen64
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/file/file.c:885,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:887,31'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:896,7'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - winpr_fopen
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:896,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:0,0'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:898,4'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:905,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:906,20'
              BranchSideFuncs:
                - winpr_fopen
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:908,14'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - free
                - free
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:909,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:913,30'
              BranchSideFuncs:
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:919,16'
              BranchSideFuncs:
                - setvbuf
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:931,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:932,8'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:933,6'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:933,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:934,8'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:937,6'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - fileno
                - flock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:937,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:942,20'
              BranchSideFuncs:
                - fileno
                - flock
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:962,19'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
        - Branch String:   'winpr/libwinpr/file/file.c:942,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:945,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:959,3'
              BranchSideFuncs:
                - fileno
                - fstat64
                - SetLastError
                - fileno
                - fchmod
        - Branch String:   'winpr/libwinpr/file/file.c:950,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:950,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/file.c:950,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/file.c:950,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:950,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - __errno_location
                - WLog_PrintMessage
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
            - BranchSide:      'winpr/libwinpr/file/file.c:950,4'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
                - FileCloseHandle
        - Branch String:   'winpr/libwinpr/file/file.c:962,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:962,44'
              BranchSideFuncs:
                - SetLastError
                - fileno
                - fchmod
            - BranchSide:      'winpr/libwinpr/file/file.c:968,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/file.c:962,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:964,6'
              BranchSideFuncs:
                - fileno
                - fchmod
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/file.c:968,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:818,21'
          Dst:             FileGetMode
        - Src:             'winpr/libwinpr/file/file.c:829,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:829,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:829,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:830,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:834,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:837,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:841,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/file.c:844,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:847,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:863,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:865,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:872,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:875,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:875,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:875,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:881,8'
          Dst:             freopen64
        - Src:             'winpr/libwinpr/file/file.c:885,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/file.c:887,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:887,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:887,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:898,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:906,8'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/file/file.c:913,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:913,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:913,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:919,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:942,13'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:942,7'
          Dst:             flock
        - Src:             'winpr/libwinpr/file/file.c:950,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/file.c:950,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/file.c:950,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:950,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/file/file.c:950,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:950,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/file.c:954,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:954,17'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/file.c:954,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:955,4'
          Dst:             FileCloseHandle
        - Src:             'winpr/libwinpr/file/file.c:962,12'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:962,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/file.c:965,10'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:965,3'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/file.c:968,2'
          Dst:             SetLastError
    - 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:    7
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_fopen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1468
      functionLinenumberEnd: 1470
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - mode
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fopen64
      functionUses:    11
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1470,9'
          Dst:             fopen64
    - functionName:    freopen64
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    setvbuf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsFileDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 973
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDeviceName
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetFileHandleForFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1433
      functionLinenumberEnd: 1465
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - fd
      BBCount:         18
      ICount:          106
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - FileHandle_New
        - fcntl64
        - fdopen
        - setvbuf
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1442,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1442,34'
              BranchSideFuncs:
                - __errno_location
                - fcntl64
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
            - BranchSide:      'winpr/libwinpr/file/file.c:1445,16'
              BranchSideFuncs:
                - fcntl64
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
        - Branch String:   'winpr/libwinpr/file/file.c:1442,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1443,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1445,16'
              BranchSideFuncs:
                - fcntl64
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
        - Branch String:   'winpr/libwinpr/file/file.c:1446,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1447,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1449,6'
              BranchSideFuncs:
                - fdopen
                - setvbuf
                - FileHandle_New
                - fdopen
        - Branch String:   'winpr/libwinpr/file/file.c:1449,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1450,15'
              BranchSideFuncs:
                - fdopen
                - setvbuf
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1452,15'
              BranchSideFuncs:
                - fdopen
                - setvbuf
                - FileHandle_New
        - Branch String:   'winpr/libwinpr/file/file.c:1454,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1455,3'
              BranchSideFuncs:
                - setvbuf
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1457,16'
              BranchSideFuncs:
                - setvbuf
                - FileHandle_New
        - Branch String:   'winpr/libwinpr/file/file.c:1460,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1461,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1463,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1442,6'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1442,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/file.c:1445,10'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/file/file.c:1450,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1452,8'
          Dst:             fdopen
        - Src:             'winpr/libwinpr/file/file.c:1457,8'
          Dst:             setvbuf
        - Src:             'winpr/libwinpr/file/file.c:1459,10'
          Dst:             FileHandle_New
    - 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:    9
      BranchProfiles:  []
      Callsites:       []
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FileHandle_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 985
      functionLinenumberEnd: 1002
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - fp
      BBCount:         6
      ICount:          58
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - _strdup
        - calloc
        - fileno
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:991,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:993,3'
              BranchSideFuncs:
                - _strdup
                - WINPR_HANDLE_SET_TYPE_AND_MODE
            - BranchSide:      'winpr/libwinpr/file/file.c:996,14'
              BranchSideFuncs:
                - _strdup
                - WINPR_HANDLE_SET_TYPE_AND_MODE
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:989,51'
          Dst:             fileno
        - Src:             'winpr/libwinpr/file/file.c:989,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/file.c:990,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/file.c:993,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:998,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/file.c:1000,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    ValidFileNameComponent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1088
      functionLinenumberEnd: 1159
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         183
      ICount:          960
      EdgeCount:       259
      CyclomaticComplexity: 78
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1089,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1090,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1093,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1093,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1093,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1093,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1093,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1094,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1093,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1094,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1094,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1094,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1094,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1094,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1095,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1094,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1095,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1095,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1095,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1095,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1095,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1096,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1095,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1096,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1093,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1098,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1102,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1102,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1102,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1103,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1102,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1103,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1103,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1103,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1103,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1103,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1104,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1103,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1104,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1104,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1104,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1104,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1104,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1105,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1104,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1105,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1102,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1107,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1111,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1111,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1111,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1112,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1111,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1112,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1112,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1112,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1112,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1112,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1113,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1112,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1113,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1113,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1113,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1113,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1113,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1114,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1113,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1114,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1111,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1116,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1120,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1120,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1120,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1121,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1120,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1121,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1121,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1121,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1121,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1121,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1122,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1121,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1122,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1122,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1122,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1122,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1122,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1123,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1122,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1123,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1125,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1129,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1129,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1129,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1130,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1129,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1130,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1130,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1130,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1130,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1130,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1131,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1130,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1131,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1131,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1131,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1131,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1131,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1132,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1131,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1132,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1132,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1132,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1132,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1132,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1132,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1133,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1135,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1139,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1139,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1139,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1140,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1139,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1140,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1140,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1140,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1140,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1140,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1141,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1140,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1141,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1141,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1141,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1141,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1141,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1142,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1141,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1142,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1142,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1142,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1142,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1142,59'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1142,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1143,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1145,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1149,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1151,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1158,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1151,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1151,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1151,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1151,41'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1151,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1151,57'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1151,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1151,73'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1151,84'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1152,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1152,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1152,26'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1152,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1152,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1152,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1152,58'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1151,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1154,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1156,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    GetDiskFreeSpaceW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1061
      functionLinenumberEnd: 1077
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpwRootPathName
        - lpSectorsPerCluster
        - lpBytesPerSector
        - lpNumberOfFreeClusters
        - lpTotalNumberOfClusters
      BBCount:         8
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetDiskFreeSpaceA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1064,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1065,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetDiskFreeSpaceA
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:1067,43'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetDiskFreeSpaceA
                - free
        - Branch String:   'winpr/libwinpr/file/file.c:1068,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1070,3'
              BranchSideFuncs:
                - GetDiskFreeSpaceA
                - free
            - BranchSide:      'winpr/libwinpr/file/file.c:1073,26'
              BranchSideFuncs:
                - GetDiskFreeSpaceA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1067,19'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/file.c:1070,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/file.c:1073,8'
          Dst:             GetDiskFreeSpaceA
    - functionName:    GetDiskFreeSpaceA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1042
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpRootPathName
        - lpSectorsPerCluster
        - lpBytesPerSector
        - lpNumberOfFreeClusters
        - lpTotalNumberOfClusters
      BBCount:         12
      ICount:          90
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - statvfs64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1051,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1051,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1051,25'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1053,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1053,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1053,28'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1054,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1054,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1054,37'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1050,2'
          Dst:             statvfs64
    - functionName:    statvfs64
      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:    SetStdHandleEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1036
      functionLinenumberEnd: 1037
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwStdHandle
        - hNewHandle
        - phOldHandle
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetStdHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1031
      functionLinenumberEnd: 1032
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nStdHandle
        - hHandle
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetStdHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1028
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - nStdHandle
      BBCount:         11
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - FileHandle_New
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/file.c:1009,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1012,9'
              BranchSideFuncs:
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1015,9'
              BranchSideFuncs:
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1018,9'
              BranchSideFuncs:
                - FileHandle_New
            - BranchSide:      'winpr/libwinpr/file/file.c:1021,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/file.c:1024,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/file.c:1025,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/file.c:1027,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/file.c:1023,10'
          Dst:             FileHandle_New
    - functionName:    GetFileHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/file.c'
      linkageType:     InternalLinkage
      functionLinenumber: 980
      functionLinenumberEnd: 981
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Digest
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 769
      functionLinenumberEnd: 789
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - md
        - input
        - ilen
        - output
        - olen
      BBCount:         13
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init
        - winpr_Digest_New
        - winpr_Digest_Update
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:773,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:774,3'
              BranchSideFuncs:
                - winpr_Digest_Init
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:776,25'
              BranchSideFuncs:
                - winpr_Digest_Init
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:776,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:777,3'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:779,27'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:779,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:780,3'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:782,26'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:782,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:783,3'
              BranchSideFuncs:
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:785,9'
              BranchSideFuncs:
                - winpr_Digest_Free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:771,26'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/crypto/hash.c:776,7'
          Dst:             winpr_Digest_Init
        - Src:             'winpr/libwinpr/crypto/hash.c:779,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:782,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:787,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 453
      functionLinenumberEnd: 484
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          49
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_MD_CTX_new
        - calloc
        - winpr_Digest_Free
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:454,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:454,26'
              BranchSideFuncs:
                - calloc
                - EVP_MD_CTX_new
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:454,26'
              BranchSideFuncs:
                - calloc
                - EVP_MD_CTX_new
                - winpr_Digest_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:455,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:456,3'
              BranchSideFuncs:
                - EVP_MD_CTX_new
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:463,15'
              BranchSideFuncs:
                - EVP_MD_CTX_new
                - winpr_Digest_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:465,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:466,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:476,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:454,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crypto/hash.c:463,15'
          Dst:             EVP_MD_CTX_new
        - Src:             'winpr/libwinpr/crypto/hash.c:481,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - md
      BBCount:         8
      ICount:          46
      EdgeCount:       15
      CyclomaticComplexity: 9
      functionsReached:
        - __assert_fail
        - winpr_Digest_Init_Internal
        - winpr_openssl_get_evp_md
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:568,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:568,2'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - winpr_Digest_Init_Internal
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:570,12'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - winpr_Digest_Init_Internal
        - Branch String:   'winpr/libwinpr/crypto/hash.c:571,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:584,4'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - winpr_Digest_Init_Internal
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:568,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:588,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:589,9'
          Dst:             winpr_Digest_Init_Internal
    - functionName:    winpr_Digest_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 629
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - input
        - ilen
      BBCount:         11
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestUpdate
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:597,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:597,2'
              BranchSideFuncs:
                - EVP_DigestUpdate
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:599,10'
              BranchSideFuncs:
                - EVP_DigestUpdate
        - Branch String:   'winpr/libwinpr/crypto/hash.c:599,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:612,4'
              BranchSideFuncs:
                - EVP_DigestUpdate
        - Branch String:   'winpr/libwinpr/crypto/hash.c:618,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:619,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:628,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:597,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:618,6'
          Dst:             EVP_DigestUpdate
    - functionName:    winpr_Digest_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 632
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - output
        - olen
      BBCount:         11
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestFinal_ex
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:633,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:633,2'
              BranchSideFuncs:
                - EVP_DigestFinal_ex
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:635,10'
              BranchSideFuncs:
                - EVP_DigestFinal_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:635,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:653,4'
              BranchSideFuncs:
                - EVP_DigestFinal_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:659,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:660,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:669,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:633,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:659,6'
          Dst:             EVP_DigestFinal_ex
    - functionName:    winpr_Digest_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_MD_CTX_free
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:720,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:721,3'
              BranchSideFuncs:
                - free
                - EVP_MD_CTX_free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:723,6'
              BranchSideFuncs:
                - free
                - EVP_MD_CTX_free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:723,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:729,19'
              BranchSideFuncs:
                - EVP_MD_CTX_free
                - free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:741,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:729,3'
          Dst:             EVP_MD_CTX_free
    - functionName:    EVP_MD_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestFinal_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EVP_DigestUpdate
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_openssl_get_evp_md
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 74
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - md
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_get_digestbyname
        - winpr_md_type_to_string
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:71,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:72,3'
              BranchSideFuncs:
                - EVP_get_digestbyname
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:73,30'
              BranchSideFuncs:
                - EVP_get_digestbyname
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:70,21'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:73,9'
          Dst:             EVP_get_digestbyname
    - functionName:    winpr_Digest_Init_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 488
      functionLinenumberEnd: 502
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - evp
      BBCount:         26
      ICount:          104
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - EVP_DigestInit_ex
        - WLog_Get
        - __assert_fail
        - winpr_md_type_to_string
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:489,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:489,2'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:490,22'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crypto/hash.c:492,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:492,17'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:493,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crypto/hash.c:492,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:493,3'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:495,24'
              BranchSideFuncs:
                - EVP_DigestInit_ex
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crypto/hash.c:495,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:497,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:501,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crypto/hash.c:497,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:497,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:497,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crypto/hash.c:497,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:497,3'
              BranchSideFuncs:
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:497,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:489,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:495,6'
          Dst:             EVP_DigestInit_ex
        - Src:             'winpr/libwinpr/crypto/hash.c:497,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crypto/hash.c:497,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crypto/hash.c:497,3'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:497,3'
          Dst:             WLog_PrintMessage
    - functionName:    EVP_DigestInit_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_md_type_to_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 147
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - md
      BBCount:         7
      ICount:          44
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:151,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:155,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crypto/hash.c:151,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:152,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:153,6'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    EVP_MD_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Digest_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 746
      functionLinenumberEnd: 766
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - md
        - input
        - ilen
        - output
        - olen
      BBCount:         13
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Digest_Final
        - winpr_Digest_Free
        - winpr_Digest_Init_Allow_FIPS
        - winpr_Digest_New
        - winpr_Digest_Update
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:750,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:751,3'
              BranchSideFuncs:
                - winpr_Digest_Init_Allow_FIPS
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:753,36'
              BranchSideFuncs:
                - winpr_Digest_Init_Allow_FIPS
                - winpr_Digest_Free
                - winpr_Digest_Update
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:753,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:754,3'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:756,27'
              BranchSideFuncs:
                - winpr_Digest_Update
                - winpr_Digest_Free
                - winpr_Digest_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:756,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:757,3'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:759,26'
              BranchSideFuncs:
                - winpr_Digest_Final
                - winpr_Digest_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:759,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:760,3'
              BranchSideFuncs:
                - winpr_Digest_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:762,9'
              BranchSideFuncs:
                - winpr_Digest_Free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:748,26'
          Dst:             winpr_Digest_New
        - Src:             'winpr/libwinpr/crypto/hash.c:753,7'
          Dst:             winpr_Digest_Init_Allow_FIPS
        - Src:             'winpr/libwinpr/crypto/hash.c:756,7'
          Dst:             winpr_Digest_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:759,7'
          Dst:             winpr_Digest_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:764,2'
          Dst:             winpr_Digest_Free
    - functionName:    winpr_Digest_Init_Allow_FIPS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ctx
        - md
      BBCount:         22
      ICount:          95
      EdgeCount:       23
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_MD_CTX_set_flags
        - WLog_Get
        - __assert_fail
        - winpr_Digest_Init_Internal
        - winpr_md_type_to_string
        - winpr_openssl_get_evp_md
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:532,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:532,2'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_MD_CTX_set_flags
                - winpr_Digest_Init_Internal
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:534,12'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_MD_CTX_set_flags
                - winpr_Digest_Init_Internal
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crypto/hash.c:535,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:542,4'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_MD_CTX_set_flags
                - winpr_Digest_Init_Internal
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:544,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crypto/hash.c:544,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:544,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:544,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_md_type_to_string
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crypto/hash.c:544,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:544,4'
              BranchSideFuncs:
                - winpr_md_type_to_string
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:544,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:532,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:544,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crypto/hash.c:544,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crypto/hash.c:544,4'
          Dst:             winpr_md_type_to_string
        - Src:             'winpr/libwinpr/crypto/hash.c:544,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/crypto/hash.c:558,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:559,2'
          Dst:             EVP_MD_CTX_set_flags
        - Src:             'winpr/libwinpr/crypto/hash.c:560,9'
          Dst:             winpr_Digest_Init_Internal
    - functionName:    EVP_MD_CTX_set_flags
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_DigestSign_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 706
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - output
        - piolen
      BBCount:         6
      ICount:          45
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - EVP_DigestSignFinal
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:707,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:707,2'
              BranchSideFuncs:
                - EVP_DigestSignFinal
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:707,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:707,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:712,9'
          Dst:             EVP_DigestSignFinal
    - functionName:    EVP_DigestSignFinal
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_DigestSign_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 691
      functionLinenumberEnd: 703
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - input
        - ilen
      BBCount:         9
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - EVP_DigestUpdate
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:692,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:692,2'
              BranchSideFuncs:
                - EVP_DigestUpdate
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:695,22'
              BranchSideFuncs:
                - EVP_DigestUpdate
        - Branch String:   'winpr/libwinpr/crypto/hash.c:697,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:698,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:699,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:692,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:697,6'
          Dst:             EVP_DigestUpdate
    - functionName:    winpr_DigestSign_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 673
      functionLinenumberEnd: 688
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
        - digest
        - key
      BBCount:         11
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - EVP_DigestSignInit
        - __assert_fail
        - winpr_openssl_get_evp_md
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:674,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:674,2'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_DigestSignInit
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:677,47'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - EVP_DigestSignInit
        - Branch String:   'winpr/libwinpr/crypto/hash.c:678,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:679,3'
              BranchSideFuncs:
                - EVP_DigestSignInit
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:681,38'
              BranchSideFuncs:
                - EVP_DigestSignInit
        - Branch String:   'winpr/libwinpr/crypto/hash.c:682,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:683,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:684,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:674,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:677,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:681,19'
          Dst:             EVP_DigestSignInit
    - functionName:    EVP_DigestSignInit
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_HMAC
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 428
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - int
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - md
        - key
        - keylen
        - input
        - ilen
        - output
        - olen
      BBCount:         13
      ICount:          94
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_HMAC_Final
        - winpr_HMAC_Free
        - winpr_HMAC_Init
        - winpr_HMAC_New
        - winpr_HMAC_Update
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:412,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:413,3'
              BranchSideFuncs:
                - winpr_HMAC_Init
                - winpr_HMAC_Free
                - winpr_HMAC_Update
                - winpr_HMAC_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:415,23'
              BranchSideFuncs:
                - winpr_HMAC_Init
                - winpr_HMAC_Free
                - winpr_HMAC_Update
                - winpr_HMAC_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:415,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:416,3'
              BranchSideFuncs:
                - winpr_HMAC_Update
                - winpr_HMAC_Free
                - winpr_HMAC_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:418,25'
              BranchSideFuncs:
                - winpr_HMAC_Update
                - winpr_HMAC_Free
                - winpr_HMAC_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:418,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:419,3'
              BranchSideFuncs:
                - winpr_HMAC_Final
                - winpr_HMAC_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:421,24'
              BranchSideFuncs:
                - winpr_HMAC_Final
                - winpr_HMAC_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:421,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:422,3'
              BranchSideFuncs:
                - winpr_HMAC_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:424,9'
              BranchSideFuncs:
                - winpr_HMAC_Free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:410,24'
          Dst:             winpr_HMAC_New
        - Src:             'winpr/libwinpr/crypto/hash.c:415,7'
          Dst:             winpr_HMAC_Init
        - Src:             'winpr/libwinpr/crypto/hash.c:418,7'
          Dst:             winpr_HMAC_Update
        - Src:             'winpr/libwinpr/crypto/hash.c:421,7'
          Dst:             winpr_HMAC_Final
        - Src:             'winpr/libwinpr/crypto/hash.c:426,2'
          Dst:             winpr_HMAC_Free
    - functionName:    winpr_HMAC_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 213
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          46
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HMAC_CTX_new
        - calloc
        - winpr_HMAC_Free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:179,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:179,41'
              BranchSideFuncs:
                - calloc
                - HMAC_CTX_new
                - winpr_HMAC_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:179,41'
              BranchSideFuncs:
                - calloc
                - HMAC_CTX_new
                - winpr_HMAC_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:180,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:181,3'
              BranchSideFuncs:
                - HMAC_CTX_new
                - winpr_HMAC_Free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:191,20'
              BranchSideFuncs:
                - HMAC_CTX_new
                - winpr_HMAC_Free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:191,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:192,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:205,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:179,41'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crypto/hash.c:191,20'
          Dst:             HMAC_CTX_new
        - Src:             'winpr/libwinpr/crypto/hash.c:210,2'
          Dst:             winpr_HMAC_Free
    - functionName:    winpr_HMAC_Init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - md
        - key
        - keylen
      BBCount:         18
      ICount:          100
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - HMAC_Init_ex
        - __assert_fail
        - winpr_openssl_get_evp_md
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:217,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:217,2'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - HMAC_Init_ex
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:219,12'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - HMAC_Init_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:220,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:228,4'
              BranchSideFuncs:
                - winpr_openssl_get_evp_md
                - HMAC_Init_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:248,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:248,15'
              BranchSideFuncs:
                - HMAC_Init_ex
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:249,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crypto/hash.c:248,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:249,3'
              BranchSideFuncs:
                - HMAC_Init_ex
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:251,6'
              BranchSideFuncs:
                - HMAC_Init_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:251,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:252,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:259,19'
              BranchSideFuncs:
                - HMAC_Init_ex
        - Branch String:   'winpr/libwinpr/crypto/hash.c:259,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:260,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:284,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:217,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:246,22'
          Dst:             winpr_openssl_get_evp_md
        - Src:             'winpr/libwinpr/crypto/hash.c:259,6'
          Dst:             HMAC_Init_ex
    - functionName:    winpr_HMAC_Update
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 288
      functionLinenumberEnd: 326
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - input
        - ilen
      BBCount:         11
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - HMAC_Update
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:289,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:289,2'
              BranchSideFuncs:
                - HMAC_Update
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:291,10'
              BranchSideFuncs:
                - HMAC_Update
        - Branch String:   'winpr/libwinpr/crypto/hash.c:291,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:299,4'
              BranchSideFuncs:
                - HMAC_Update
        - Branch String:   'winpr/libwinpr/crypto/hash.c:314,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:315,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:325,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:289,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:314,6'
          Dst:             HMAC_Update
    - functionName:    winpr_HMAC_Final
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 329
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ctx
        - output
        - olen
      BBCount:         11
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - HMAC_Final
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:330,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:330,2'
              BranchSideFuncs:
                - HMAC_Final
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:332,10'
              BranchSideFuncs:
                - HMAC_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:332,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:342,4'
              BranchSideFuncs:
                - HMAC_Final
        - Branch String:   'winpr/libwinpr/crypto/hash.c:358,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:359,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:370,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:330,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crypto/hash.c:358,6'
          Dst:             HMAC_Final
    - functionName:    winpr_HMAC_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ctx
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - HMAC_CTX_free
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:375,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:376,3'
              BranchSideFuncs:
                - free
                - HMAC_CTX_free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:382,19'
              BranchSideFuncs:
                - free
                - HMAC_CTX_free
        - Branch String:   'winpr/libwinpr/crypto/hash.c:384,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:391,17'
              BranchSideFuncs:
                - HMAC_CTX_free
                - free
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:403,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:391,3'
          Dst:             HMAC_CTX_free
    - functionName:    HMAC_CTX_free
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_Final
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_Update
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_Init_ex
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    HMAC_CTX_new
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_md_type_from_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crypto/hash.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _stricmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crypto/hash.c:137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:139,16'
              BranchSideFuncs:
                - _stricmp
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:143,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crypto/hash.c:139,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:140,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crypto/hash.c:141,6'
              BranchSideFuncs:
                - _stricmp
      Callsites:
        - Src:             'winpr/libwinpr/crypto/hash.c:139,7'
          Dst:             _stricmp
    - functionName:    Stream_SafeSeekEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - size
        - file
        - line
        - fkt
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_Seek
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:517,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:519,3'
              BranchSideFuncs:
                - Stream_Seek.784
            - BranchSide:      'winpr/libwinpr/utils/stream.c:521,14'
              BranchSideFuncs:
                - Stream_Seek.784
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:517,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:521,2'
          Dst:             Stream_Seek
    - functionName:    Stream_CheckAndLogRequiredLengthEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 394
      functionLinenumberEnd: 409
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - level
        - s
        - nmemb
        - size
        - fmt
      BBCount:         9
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthExVa
        - Stream_GetRemainingLength
        - __assert_fail
      functionUses:    29
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:395,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:395,2'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - Stream_CheckAndLogRequiredLengthExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:396,50'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - Stream_CheckAndLogRequiredLengthExVa
        - Branch String:   'winpr/libwinpr/utils/stream.c:398,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:400,11'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:408,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:395,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:396,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:403,3'
          Dst:             Stream_CheckAndLogRequiredLengthExVa
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    Stream_GetRemainingCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 265
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         27
      ICount:          122
      EdgeCount:       30
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_log_backtrace
      functionUses:    45
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:254,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:254,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:255,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:255,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:256,17'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:257,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:257,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:258,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:258,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:260,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:264,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:260,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:260,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:260,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:260,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:260,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:260,3'
              BranchSideFuncs:
                - winpr_log_backtrace
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:254,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:255,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:257,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:260,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:260,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:260,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:261,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_GetRemainingLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 268
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         30
      ICount:          137
      EdgeCount:       33
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_log_backtrace
      functionUses:    17
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:270,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:270,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:271,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:271,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:271,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:272,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:272,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:272,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:273,17'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:274,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:274,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:275,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:275,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:277,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:281,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:277,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:277,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:277,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:277,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:277,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:277,3'
              BranchSideFuncs:
                - winpr_log_backtrace
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:270,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:271,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:272,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:274,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:277,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:277,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:277,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:278,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_CheckAndLogRequiredLengthExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 413
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - level
        - s
        - nmemb
        - size
        - fmt
        - args
      BBCount:         9
      ICount:          75
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogExVa
        - Stream_GetRemainingLength
        - WLog_Get
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:414,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:414,2'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - WLog_Get
                - Stream_CheckAndLogRequiredLengthWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:415,50'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - WLog_Get
                - Stream_CheckAndLogRequiredLengthWLogExVa
        - Branch String:   'winpr/libwinpr/utils/stream.c:417,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:418,60'
              BranchSideFuncs:
                - WLog_Get
                - Stream_CheckAndLogRequiredLengthWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:420,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:414,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:415,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:418,51'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:418,10'
          Dst:             Stream_CheckAndLogRequiredLengthWLogExVa
    - functionName:    Stream_CheckAndLogRequiredLengthWLogExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 464
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - level
        - s
        - nmemb
        - size
        - fmt
        - args
      BBCount:         16
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingLength
        - WLog_IsLevelActive
        - __assert_fail
        - vsnprintf
        - winpr_log_backtrace_ex
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:447,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:447,2'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - vsnprintf
                - WLog_IsLevelActive
                - winpr_log_backtrace_ex
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:448,50'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - vsnprintf
                - WLog_IsLevelActive
                - winpr_log_backtrace_ex
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:450,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:452,8'
              BranchSideFuncs:
                - vsnprintf
                - WLog_IsLevelActive
                - winpr_log_backtrace_ex
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:463,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:456,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:456,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace_ex
            - BranchSide:      'winpr/libwinpr/utils/stream.c:460,26'
              BranchSideFuncs:
                - winpr_log_backtrace_ex
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:447,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:448,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:454,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/stream.c:456,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:456,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:460,3'
          Dst:             winpr_log_backtrace_ex
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_Read_UTF16_String_As_UTF8_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - wcharLength
        - utfBuffer
        - utfBufferCharLength
      BBCount:         8
      ICount:          65
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharNToUtf8
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:505,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:506,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:508,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Seek.784
                - ConvertWCharNToUtf8
        - Branch String:   'winpr/libwinpr/utils/stream.c:508,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:509,3'
              BranchSideFuncs:
                - Stream_Seek.784
                - ConvertWCharNToUtf8
            - BranchSide:      'winpr/libwinpr/utils/stream.c:511,14'
              BranchSideFuncs:
                - Stream_Seek.784
                - ConvertWCharNToUtf8
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:504,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:508,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:511,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:512,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    Stream_ConstPointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 861
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:862,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:862,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:862,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:862,3'
          Dst:             __assert_fail
    - functionName:    Stream_Read_UTF16_String_As_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - dlen
        - psize
      BBCount:         8
      ICount:          61
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharNToUtf8Alloc
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_ConstPointer
        - Stream_Seek
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:491,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:492,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:494,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_Seek.784
                - ConvertWCharNToUtf8Alloc
        - Branch String:   'winpr/libwinpr/utils/stream.c:494,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:495,3'
              BranchSideFuncs:
                - Stream_Seek.784
                - ConvertWCharNToUtf8Alloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:497,14'
              BranchSideFuncs:
                - Stream_Seek.784
                - ConvertWCharNToUtf8Alloc
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:490,21'
          Dst:             Stream_ConstPointer
        - Src:             'winpr/libwinpr/utils/stream.c:494,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:497,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:498,9'
          Dst:             ConvertWCharNToUtf8Alloc
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _n
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:813,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:813,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.784
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.784
        - Branch String:   'winpr/include/winpr/stream.h:814,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - Stream_Seek.784
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:813,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:814,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:814,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:816,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Pointer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:856,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:856,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:856,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:856,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UTF16_String_From_UTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 468
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      size_t
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - s
        - dlen
        - src
        - length
        - fill
      BBCount:         13
      ICount:          95
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertUtf8NToWChar
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Pointer
        - Stream_Seek
        - Stream_Zero
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:471,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:472,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:474,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - ConvertUtf8NToWChar
                - Stream_Seek.784
                - Stream_Zero.807
        - Branch String:   'winpr/libwinpr/utils/stream.c:474,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:475,3'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - Stream_Seek.784
                - Stream_Zero.807
            - BranchSide:      'winpr/libwinpr/utils/stream.c:477,35'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - Stream_Seek.784
                - Stream_Zero.807
        - Branch String:   'winpr/libwinpr/utils/stream.c:478,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:479,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:481,14'
              BranchSideFuncs:
                - Stream_Seek.784
                - Stream_Zero.807
        - Branch String:   'winpr/libwinpr/utils/stream.c:483,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:484,15'
              BranchSideFuncs:
                - Stream_Zero.807
            - BranchSide:      'winpr/libwinpr/utils/stream.c:485,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:469,15'
          Dst:             Stream_Pointer
        - Src:             'winpr/libwinpr/utils/stream.c:474,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:477,15'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/utils/stream.c:481,2'
          Dst:             Stream_Seek
        - Src:             'winpr/libwinpr/utils/stream.c:484,3'
          Dst:             Stream_Zero
    - functionName:    Stream_CheckAndLogRequiredCapacityEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 316
      functionLinenumberEnd: 331
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - level
        - s
        - nmemb
        - size
        - fmt
      BBCount:         9
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityExVa
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:317,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:317,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - Stream_CheckAndLogRequiredCapacityExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:318,52'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - Stream_CheckAndLogRequiredCapacityExVa
        - Branch String:   'winpr/libwinpr/utils/stream.c:320,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:322,11'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:330,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:317,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:318,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:325,3'
          Dst:             Stream_CheckAndLogRequiredCapacityExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 335
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - tag
        - level
        - s
        - nmemb
        - size
        - fmt
        - args
      BBCount:         9
      ICount:          75
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Stream_GetRemainingCapacity
        - WLog_Get
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:336,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:336,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - WLog_Get
                - Stream_CheckAndLogRequiredCapacityWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:337,52'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - WLog_Get
                - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Branch String:   'winpr/libwinpr/utils/stream.c:339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:340,62'
              BranchSideFuncs:
                - WLog_Get
                - Stream_CheckAndLogRequiredCapacityWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:342,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:336,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:337,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:340,53'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:340,10'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityWLogExVa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 349
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - level
        - s
        - nmemb
        - size
        - fmt
        - args
      BBCount:         16
      ICount:          101
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_GetRemainingCapacity
        - WLog_IsLevelActive
        - __assert_fail
        - vsnprintf
        - winpr_log_backtrace_ex
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:351,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:351,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - vsnprintf
                - WLog_IsLevelActive
                - winpr_log_backtrace_ex
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:352,52'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - vsnprintf
                - WLog_IsLevelActive
                - winpr_log_backtrace_ex
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:354,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:356,8'
              BranchSideFuncs:
                - vsnprintf
                - WLog_IsLevelActive
                - winpr_log_backtrace_ex
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:367,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:360,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:360,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace_ex
            - BranchSide:      'winpr/libwinpr/utils/stream.c:364,26'
              BranchSideFuncs:
                - winpr_log_backtrace_ex
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:351,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:352,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:358,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/stream.c:360,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:360,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:364,3'
          Dst:             winpr_log_backtrace_ex
    - functionName:    Stream_CheckAndLogRequiredLengthWLogEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 425
      functionLinenumberEnd: 440
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - level
        - s
        - nmemb
        - size
        - fmt
      BBCount:         9
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredLengthWLogExVa
        - Stream_GetRemainingLength
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:426,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:426,2'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - Stream_CheckAndLogRequiredLengthWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:427,50'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - Stream_CheckAndLogRequiredLengthWLogExVa
        - Branch String:   'winpr/libwinpr/utils/stream.c:429,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:431,11'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:439,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:426,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:427,24'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/libwinpr/utils/stream.c:434,3'
          Dst:             Stream_CheckAndLogRequiredLengthWLogExVa
    - functionName:    Stream_CheckAndLogRequiredCapacityWLogEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - level
        - s
        - nmemb
        - size
        - fmt
      BBCount:         9
      ICount:          77
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:375,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:375,2'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - Stream_CheckAndLogRequiredCapacityWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:376,52'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - Stream_CheckAndLogRequiredCapacityWLogExVa
        - Branch String:   'winpr/libwinpr/utils/stream.c:378,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:380,11'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityWLogExVa
            - BranchSide:      'winpr/libwinpr/utils/stream.c:388,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:375,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:376,24'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/libwinpr/utils/stream.c:383,3'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogExVa
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:169,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:169,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.784
            - BranchSide:      'winpr/include/winpr/stream.h:170,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.784
        - Branch String:   'winpr/include/winpr/stream.h:170,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:170,3'
              BranchSideFuncs:
                - Stream_Seek.784
            - BranchSide:      'winpr/include/winpr/stream.h:172,20'
              BranchSideFuncs:
                - Stream_Seek.784
        - Branch String:   'winpr/include/winpr/stream.h:174,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:174,7'
              BranchSideFuncs:
                - Stream_Seek.784
            - BranchSide:      'winpr/include/winpr/stream.h:175,16'
              BranchSideFuncs:
                - Stream_Seek.784
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:169,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:170,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:170,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:175,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Read_UTF16_String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - dst
        - length
      BBCount:         18
      ICount:          81
      EdgeCount:       20
      CyclomaticComplexity: 4
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - __assert_fail
        - stream_read_u16_le
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:302,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:302,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u16_le.816
            - BranchSide:      'winpr/libwinpr/utils/stream.c:303,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u16_le.816
        - Branch String:   'winpr/libwinpr/utils/stream.c:303,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:303,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u16_le.816
            - BranchSide:      'winpr/libwinpr/utils/stream.c:305,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - stream_read_u16_le.816
        - Branch String:   'winpr/libwinpr/utils/stream.c:305,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:306,3'
              BranchSideFuncs:
                - stream_read_u16_le.816
            - BranchSide:      'winpr/libwinpr/utils/stream.c:308,14'
              BranchSideFuncs:
                - stream_read_u16_le.816
        - Branch String:   'winpr/libwinpr/utils/stream.c:308,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:309,3'
              BranchSideFuncs:
                - stream_read_u16_le.816
            - BranchSide:      'winpr/libwinpr/utils/stream.c:311,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:302,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:303,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:305,7'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/stream.c:309,3'
          Dst:             stream_read_u16_le
    - functionName:    Stream_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:695,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:695,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:696,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:697,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:695,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:696,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UTF16_String
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 285
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - src
        - length
      BBCount:         24
      ICount:          107
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_Write_UINT16
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:286,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:286,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
        - Branch String:   'winpr/libwinpr/utils/stream.c:287,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
        - Branch String:   'winpr/libwinpr/utils/stream.c:287,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:287,2'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:288,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
        - Branch String:   'winpr/libwinpr/utils/stream.c:288,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:288,13'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:289,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:288,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:289,3'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:291,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - Stream_Write_UINT16.820
        - Branch String:   'winpr/libwinpr/utils/stream.c:291,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:292,3'
              BranchSideFuncs:
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:294,14'
              BranchSideFuncs:
                - Stream_Write_UINT16.820
        - Branch String:   'winpr/libwinpr/utils/stream.c:294,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:295,23'
              BranchSideFuncs:
                - Stream_Write_UINT16.820
            - BranchSide:      'winpr/libwinpr/utils/stream.c:297,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:286,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:287,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:291,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/stream.c:295,3'
          Dst:             Stream_Write_UINT16
    - functionName:    Stream_SealLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         27
      ICount:          120
      EdgeCount:       30
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_log_backtrace
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:206,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:206,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:207,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:207,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:208,17'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:209,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:209,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:210,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:210,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:211,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:214,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:214,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:214,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:214,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:214,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:214,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
            - BranchSide:      'winpr/libwinpr/utils/stream.c:214,3'
              BranchSideFuncs:
                - winpr_log_backtrace
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:206,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:207,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:209,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:214,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:214,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:214,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:215,3'
          Dst:             winpr_log_backtrace
    - functionName:    Stream_SetLength
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 182
      functionLinenumberEnd: 190
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _l
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Capacity
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:183,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:185,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:188,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:183,13'
          Dst:             Stream_Capacity
    - functionName:    Stream_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:888,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:888,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:888,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:888,3'
          Dst:             __assert_fail
    - functionName:    Stream_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - bFreeBuffer
      BBCount:         14
      ICount:          69
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_EnsureValidity
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:170,6'
              BranchSideFuncs:
                - Stream_EnsureValidity
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:172,25'
              BranchSideFuncs:
                - Stream_EnsureValidity
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:173,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:173,22'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:176,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:173,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:174,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:176,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:176,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:177,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:178,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:172,3'
          Dst:             Stream_EnsureValidity
    - functionName:    Stream_EnsureValidity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
      BBCount:         67
      ICount:          225
      EdgeCount:       75
      CyclomaticComplexity: 10
      functionsReached:
        - WLog_Get
        - abort
        - winpr_log_backtrace
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:160,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:160,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:160,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:160,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:160,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:160,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:160,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:160,2'
              BranchSideFuncs:
                - winpr_log_backtrace
                - abort
        - Branch String:   'winpr/libwinpr/utils/stream.c:161,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:163,17'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:161,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:161,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:161,2'
              BranchSideFuncs:
                - winpr_log_backtrace
                - abort
        - Branch String:   'winpr/libwinpr/utils/stream.c:164,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:164,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:164,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:164,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:164,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:164,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:164,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:164,2'
              BranchSideFuncs:
                - winpr_log_backtrace
                - abort
        - Branch String:   'winpr/libwinpr/utils/stream.c:165,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:165,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - abort
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/stream.c:165,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - abort
            - BranchSide:      'winpr/libwinpr/utils/stream.c:165,2'
              BranchSideFuncs:
                - winpr_log_backtrace
                - abort
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:160,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:160,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:160,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:160,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:160,2'
          Dst:             abort
        - Src:             'winpr/libwinpr/utils/stream.c:161,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:161,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:161,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:161,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:161,2'
          Dst:             abort
        - Src:             'winpr/libwinpr/utils/stream.c:164,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:164,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:164,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:164,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:164,2'
          Dst:             abort
        - Src:             'winpr/libwinpr/utils/stream.c:165,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/stream.c:165,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/stream.c:165,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/stream.c:165,2'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/utils/stream.c:165,2'
          Dst:             abort
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    Stream_StaticInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 140
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - buffer
        - size
      BBCount:         9
      ICount:          73
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:143,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/stream.c:144,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/stream.c:144,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:144,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:144,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:143,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:144,2'
          Dst:             __assert_fail
    - functionName:    Stream_StaticConstInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - buffer
        - size
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_StaticInit
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:136,9'
          Dst:             Stream_StaticInit
    - functionName:    Stream_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - buffer
        - size
      BBCount:         16
      ICount:          116
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:98,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:98,18'
              BranchSideFuncs:
                - malloc
                - malloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:101,6'
              BranchSideFuncs:
                - malloc
                - malloc
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:98,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:99,3'
              BranchSideFuncs:
                - malloc
                - malloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:101,6'
              BranchSideFuncs:
                - malloc
                - malloc
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:102,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:103,3'
              BranchSideFuncs:
                - malloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:105,6'
              BranchSideFuncs:
                - malloc
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:105,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:106,15'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/stream.c:108,29'
              BranchSideFuncs:
                - malloc
                - free
        - Branch String:   'winpr/libwinpr/utils/stream.c:110,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:112,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:116,15'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    Stream_EnsureRemainingCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - size
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Capacity
        - Stream_EnsureCapacity
        - Stream_GetPosition
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:89,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:90,32'
              BranchSideFuncs:
                - Stream_Capacity
                - Stream_EnsureCapacity
            - BranchSide:      'winpr/libwinpr/utils/stream.c:91,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:89,6'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/stream.c:89,37'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/stream.c:90,35'
          Dst:             Stream_Capacity
        - Src:             'winpr/libwinpr/utils/stream.c:90,10'
          Dst:             Stream_EnsureCapacity
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:896,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:896,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:897,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:896,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             __assert_fail
    - functionName:    Stream_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - size
      BBCount:         19
      ICount:          147
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - Stream_GetPosition
        - Stream_SetPosition
        - __assert_fail
        - realloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:46,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:46,2'
              BranchSideFuncs:
                - Stream_GetPosition.834
                - malloc
                - Stream_SetPosition
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:47,6'
              BranchSideFuncs:
                - Stream_GetPosition.834
                - malloc
                - Stream_SetPosition
                - realloc
        - Branch String:   'winpr/libwinpr/utils/stream.c:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:49,10'
              BranchSideFuncs:
                - Stream_GetPosition.834
                - malloc
                - Stream_SetPosition
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:84,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/stream.c:60,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:59,17'
              BranchSideFuncs:
                - Stream_GetPosition.834
                - malloc
                - Stream_SetPosition
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/stream.c:62,33'
              BranchSideFuncs:
                - Stream_GetPosition.834
                - malloc
                - Stream_SetPosition
                - realloc
        - Branch String:   'winpr/libwinpr/utils/stream.c:64,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:66,28'
              BranchSideFuncs:
                - realloc
                - Stream_SetPosition
            - BranchSide:      'winpr/libwinpr/utils/stream.c:72,29'
              BranchSideFuncs:
                - realloc
                - Stream_SetPosition
        - Branch String:   'winpr/libwinpr/utils/stream.c:75,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:76,4'
              BranchSideFuncs:
                - Stream_SetPosition
            - BranchSide:      'winpr/libwinpr/utils/stream.c:77,15'
              BranchSideFuncs:
                - Stream_SetPosition
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:46,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/stream.c:62,14'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/stream.c:72,21'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/stream.c:82,3'
          Dst:             Stream_SetPosition
    - functionName:    Stream_SetPosition
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/stream.c'
      linkageType:     InternalLinkage
      functionLinenumber: 193
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _p
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_Capacity
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/stream.c:194,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/stream.c:196,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/stream.c:199,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/stream.c:194,13'
          Dst:             Stream_Capacity
    - functionName:    winpr_strerror
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 234
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dw
        - dmsg
        - size
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strerror
      functionUses:    47
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:232,36'
          Dst:             strerror
        - Src:             'winpr/libwinpr/utils/debug.c:232,8'
          Dst:             snprintf
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_log_backtrace_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 201
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - log
        - level
        - size
      BBCount:         27
      ICount:          119
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_IsLevelActive
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:208,3'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:212,32'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/debug.c:208,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:208,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/debug.c:209,3'
              BranchSideFuncs:
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/debug.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:216,15'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:219,7'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/debug.c:216,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:217,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - winpr_backtrace_free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:218,2'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/debug.c:217,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:216,33'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
            - BranchSide:      'winpr/libwinpr/utils/debug.c:217,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - winpr_backtrace_free
                - WLog_IsLevelActive
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:204,16'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/debug.c:208,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/debug.c:208,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/debug.c:212,8'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/debug.c:217,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/debug.c:217,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/debug.c:222,2'
          Dst:             winpr_backtrace_free
    - functionName:    winpr_backtrace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - size
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_unwind_backtrace
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:111,9'
          Dst:             winpr_unwind_backtrace
    - functionName:    winpr_backtrace_symbols
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
        - used
      BBCount:         18
      ICount:          70
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - winpr_unwind_backtrace_symbols
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:128,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:129,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_PrintMessage
                - winpr_unwind_backtrace_symbols
            - BranchSide:      'winpr/libwinpr/utils/debug.c:131,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_Get
                - WLog_PrintMessage
                - winpr_unwind_backtrace_symbols
        - Branch String:   'winpr/libwinpr/utils/debug.c:131,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:133,3'
              BranchSideFuncs:
                - winpr_unwind_backtrace_symbols
            - BranchSide:      'winpr/libwinpr/utils/debug.c:138,40'
              BranchSideFuncs:
                - winpr_unwind_backtrace_symbols
        - Branch String:   'winpr/libwinpr/utils/debug.c:133,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:133,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:133,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:133,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/debug.c:133,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/debug.c:133,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/debug.c:133,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/debug.c:138,9'
          Dst:             winpr_unwind_backtrace_symbols
    - functionName:    winpr_backtrace_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
      BBCount:         6
      ICount:          27
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_unwind_backtrace_free
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:91,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:92,3'
              BranchSideFuncs:
                - winpr_unwind_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/debug.c:95,30'
              BranchSideFuncs:
                - winpr_unwind_backtrace_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:95,2'
          Dst:             winpr_unwind_backtrace_free
    - functionName:    winpr_log_backtrace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 196
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - tag
        - level
        - size
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Get
        - winpr_log_backtrace_ex
      functionUses:    12
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:197,25'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/debug.c:197,2'
          Dst:             winpr_log_backtrace_ex
    - functionName:    winpr_backtrace_symbols_fd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - buffer
        - fd
      BBCount:         21
      ICount:          97
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - strnlen
        - winpr_backtrace_symbols
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/debug.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:172,3'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - strnlen
                - write
            - BranchSide:      'winpr/libwinpr/utils/debug.c:180,10'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - strnlen
                - write
        - Branch String:   'winpr/libwinpr/utils/debug.c:172,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:172,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/debug.c:172,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/debug.c:183,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:184,4'
              BranchSideFuncs:
                - free
                - strnlen
                - write
            - BranchSide:      'winpr/libwinpr/utils/debug.c:186,15'
              BranchSideFuncs:
                - free
                - strnlen
                - write
        - Branch String:   'winpr/libwinpr/utils/debug.c:186,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/debug.c:187,11'
              BranchSideFuncs:
                - strnlen
                - write
                - free
            - BranchSide:      'winpr/libwinpr/utils/debug.c:188,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/debug.c:172,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/debug.c:172,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/debug.c:172,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/debug.c:172,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/debug.c:181,18'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/debug.c:187,35'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/debug.c:187,4'
          Dst:             write
    - functionName:    write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unwind_reason_str
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - code
      BBCount:         12
      ICount:          63
      EdgeCount:       22
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:64,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:72,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:75,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:77,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:79,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:81,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:83,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:85,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:87,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:89,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:96,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_unwind_backtrace_symbols
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 200
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
        - used
      BBCount:         18
      ICount:          151
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached:
        - calloc
        - dladdr
        - snprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:174,3'
              BranchSideFuncs:
                - calloc
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:176,19'
              BranchSideFuncs:
                - calloc
                - dladdr
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:177,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:178,3'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:180,6'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:180,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:181,11'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:183,14'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:183,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:185,19'
              BranchSideFuncs:
                - dladdr
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:199,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:192,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:193,20'
              BranchSideFuncs:
                - snprintf
                - dladdr
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:195,20'
              BranchSideFuncs:
                - snprintf
                - dladdr
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:176,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:188,12'
          Dst:             dladdr
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:193,10'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:195,10'
          Dst:             snprintf
    - functionName:    dladdr
      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:    winpr_unwind_backtrace_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:158,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:159,7'
              BranchSideFuncs:
                - free
                - free
      Callsites:       []
    - functionName:    unwind_reason_str_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - code
        - buffer
        - size
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - snprintf
        - unwind_reason_str
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:102,20'
          Dst:             unwind_reason_str
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:103,8'
          Dst:             snprintf
    - functionName:    unwind_backtrace_callback
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - context
        - arg
      BBCount:         9
      ICount:          69
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - _Unwind_GetIP
        - _Unwind_GetLanguageSpecificData
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:111,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:111,2'
              BranchSideFuncs:
                - _Unwind_GetIP
                - _Unwind_GetLanguageSpecificData
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:113,6'
              BranchSideFuncs:
                - _Unwind_GetIP
                - _Unwind_GetLanguageSpecificData
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:113,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:113,6'
              BranchSideFuncs:
                - _Unwind_GetIP
                - _Unwind_GetLanguageSpecificData
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:115,18'
              BranchSideFuncs:
                - _Unwind_GetIP
                - _Unwind_GetLanguageSpecificData
      Callsites:
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:111,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:116,17'
          Dst:             _Unwind_GetIP
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:122,38'
          Dst:             _Unwind_GetLanguageSpecificData
    - functionName:    _Unwind_GetIP
      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:    _Unwind_GetLanguageSpecificData
      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:    winpr_unwind_backtrace
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/unwind/debug.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 152
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - size
      BBCount:         23
      ICount:          112
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - _Unwind_Backtrace
        - calloc
        - unwind_backtrace_callback
        - unwind_reason_str_buffer
        - winpr_unwind_backtrace_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:132,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:133,3'
              BranchSideFuncs:
                - calloc
                - winpr_unwind_backtrace_free
                - _Unwind_Backtrace
                - WLog_Get
                - WLog_IsLevelActive
                - unwind_reason_str_buffer
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:134,14'
              BranchSideFuncs:
                - calloc
                - winpr_unwind_backtrace_free
                - _Unwind_Backtrace
                - WLog_Get
                - WLog_IsLevelActive
                - unwind_reason_str_buffer
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:136,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:137,3'
              BranchSideFuncs:
                - _Unwind_Backtrace
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_unwind_backtrace_free
                - unwind_reason_str_buffer
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:139,52'
              BranchSideFuncs:
                - _Unwind_Backtrace
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_unwind_backtrace_free
                - unwind_reason_str_buffer
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:140,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:142,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_unwind_backtrace_free
                - unwind_reason_str_buffer
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:148,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:143,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:143,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_unwind_backtrace_free
                - unwind_reason_str_buffer
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:143,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_unwind_backtrace_free
                - unwind_reason_str_buffer
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/unwind/debug.c:143,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:143,3'
              BranchSideFuncs:
                - unwind_reason_str_buffer
                - WLog_PrintMessage
                - winpr_unwind_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/unwind/debug.c:143,3'
              BranchSideFuncs:
                - winpr_unwind_backtrace_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:131,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:135,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:139,7'
          Dst:             _Unwind_Backtrace
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:139,7'
          Dst:             unwind_backtrace_callback
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:143,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:143,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:143,3'
          Dst:             unwind_reason_str_buffer
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:143,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/unwind/debug.c:150,2'
          Dst:             winpr_unwind_backtrace_free
    - functionName:    _Unwind_Backtrace
      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:    WLog_Uninit_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          61
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Free
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:80,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:80,8'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:80,8'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:83,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:84,3'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:86,13'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:86,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:88,11'
              BranchSideFuncs:
                - WLog_Free
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:92,12'
              BranchSideFuncs:
                - WLog_Free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:89,3'
          Dst:             WLog_Free
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:92,2'
          Dst:             WLog_Free
    - functionName:    WLog_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 906
      functionLinenumberEnd: 922
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         9
      ICount:          66
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - DeleteCriticalSection
        - WLog_Appender_Free
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:907,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:907,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
                - WLog_Appender_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:909,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
                - WLog_Appender_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:909,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:911,23'
              BranchSideFuncs:
                - WLog_Appender_Free
                - free
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:915,8'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - DeleteCriticalSection
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:911,4'
          Dst:             WLog_Appender_Free
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:919,3'
          Dst:             DeleteCriticalSection
    - functionName:    WLog_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 103
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:104,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:104,2'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:104,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:104,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:105,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 97
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:98,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:98,2'
              BranchSideFuncs:
                - EnterCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:98,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:98,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:99,2'
          Dst:             EnterCriticalSection
    - functionName:    WLog_AddChild
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 933
      functionLinenumberEnd: 977
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - parent
        - child
      BBCount:         20
      ICount:          147
      EdgeCount:       26
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Lock
        - WLog_Unlock
        - realloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:938,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:940,10'
              BranchSideFuncs:
                - WLog_Unlock
                - free
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:967,7'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:943,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:945,8'
              BranchSideFuncs:
                - realloc
                - free
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:952,26'
              BranchSideFuncs:
                - realloc
                - free
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:945,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:946,10'
              BranchSideFuncs:
                - free
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:948,4'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:954,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:956,9'
              BranchSideFuncs:
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:963,23'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:956,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:957,11'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:959,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:967,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:968,3'
              BranchSideFuncs:
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:970,46'
              BranchSideFuncs:
                - WLog_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:936,2'
          Dst:             WLog_Lock
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:952,18'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:973,2'
          Dst:             WLog_Unlock
    - functionName:    WLog_FindChild
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 981
      functionLinenumberEnd: 1004
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - root
        - name
      BBCount:         16
      ICount:          97
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Lock
        - WLog_Unlock
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:985,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:986,3'
              BranchSideFuncs:
                - WLog_Lock
                - WLog_Unlock
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:988,12'
              BranchSideFuncs:
                - WLog_Lock
                - WLog_Unlock
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:990,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:992,11'
              BranchSideFuncs:
                - strcmp
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1001,14'
              BranchSideFuncs:
                - WLog_Unlock
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:994,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:996,10'
              BranchSideFuncs:
                - WLog_Unlock
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:999,2'
              BranchSideFuncs:
                - WLog_Unlock
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1003,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1003,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1003,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:988,2'
          Dst:             WLog_Lock
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:994,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1001,2'
          Dst:             WLog_Unlock
    - functionName:    WLog_ParseName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 820
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - name
      BBCount:         17
      ICount:          141
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - _strdup
        - calloc
        - strchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:785,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:787,8'
              BranchSideFuncs:
                - strchr
                - _strdup
                - calloc
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:791,18'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:793,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:794,3'
              BranchSideFuncs:
                - calloc
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:796,19'
              BranchSideFuncs:
                - calloc
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:799,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:801,8'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:805,2'
              BranchSideFuncs:
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:810,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:812,7'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:819,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:812,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:813,26'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:815,4'
              BranchSideFuncs:
                - strchr
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:785,15'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:791,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:797,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:810,14'
          Dst:             strchr
    - 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:    13
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_ParseFilters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 711
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - root
      BBCount:         11
      ICount:          82
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_AddStringLogFilters_int
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:721,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:722,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:724,22'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableA
                - free
                - WLog_AddStringLogFilters_int
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:726,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:727,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - free
                - WLog_AddStringLogFilters_int
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:729,30'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - free
                - WLog_AddStringLogFilters_int
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:729,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:730,38'
              BranchSideFuncs:
                - WLog_AddStringLogFilters_int
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:732,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:719,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:729,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:730,9'
          Dst:             WLog_AddStringLogFilters_int
    - functionName:    WLog_AddStringLogFilters_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 490
      functionLinenumberEnd: 550
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - root
        - filter
      BBCount:         29
      ICount:          184
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_ParseFilter
        - WLog_reset_log_filters
        - _strdup
        - realloc
        - strchr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:494,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:495,3'
              BranchSideFuncs:
                - strchr
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:497,8'
              BranchSideFuncs:
                - strchr
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:500,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:502,8'
              BranchSideFuncs:
                - strchr
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:506,14'
              BranchSideFuncs:
                - realloc
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:510,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:511,3'
              BranchSideFuncs:
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:513,14'
              BranchSideFuncs:
                - _strdup
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:516,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:517,3'
              BranchSideFuncs:
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:519,6'
              BranchSideFuncs:
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:526,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:527,5'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:529,7'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:529,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:531,26'
              BranchSideFuncs:
                - WLog_ParseFilter
                - free
                - free
                - WLog_reset_log_filters
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:538,4'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:531,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:533,10'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:536,3'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:540,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:542,16'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:545,2'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
                - strchr
                - WLog_ParseFilter
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:545,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:524,14'
              BranchSideFuncs:
                - strchr
                - free
                - WLog_reset_log_filters
                - WLog_ParseFilter
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:547,18'
              BranchSideFuncs:
                - free
                - WLog_reset_log_filters
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:500,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:508,33'
          Dst:             realloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:514,20'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:524,7'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:531,9'
          Dst:             WLog_ParseFilter
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:549,9'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_ParseFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 628
      functionLinenumberEnd: 708
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - root
        - filter
        - name
      BBCount:         26
      ICount:          231
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - WLog_ParseLogLevel
        - _strdup
        - calloc
        - strchr
        - strrchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:639,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:640,3'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:642,7'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:644,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:646,3'
              BranchSideFuncs:
                - strchr
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:653,18'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:646,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:648,9'
              BranchSideFuncs:
                - strchr
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:651,2'
              BranchSideFuncs:
                - _strdup
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:655,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:656,3'
              BranchSideFuncs:
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:658,22'
              BranchSideFuncs:
                - calloc
                - free
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:661,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:663,8'
              BranchSideFuncs:
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:668,2'
              BranchSideFuncs:
                - strrchr
                - free
                - free
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:674,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:676,8'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:683,3'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - strchr
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:687,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:689,8'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:696,25'
              BranchSideFuncs:
                - strchr
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:698,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:700,7'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:707,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:700,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:701,29'
              BranchSideFuncs:
                - strchr
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:703,4'
              BranchSideFuncs:
                - strchr
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:646,16'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:653,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:659,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:672,6'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:685,11'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:698,14'
          Dst:             strchr
    - functionName:    WLog_reset_log_filters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 487
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         12
      ICount:          71
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_reset_log_filters
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:473,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:474,3'
              BranchSideFuncs:
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:476,2'
              BranchSideFuncs:
                - WLog_reset_log_filters
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:478,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:480,17'
              BranchSideFuncs:
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:486,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:482,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:483,4'
              BranchSideFuncs:
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:484,2'
              BranchSideFuncs:
                - WLog_reset_log_filters
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:482,8'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_ParseLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 603
      functionLinenumberEnd: 625
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - level
      BBCount:         27
      ICount:          110
      EdgeCount:       35
      CyclomaticComplexity: 10
      functionsReached:
        - _stricmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:606,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:607,3'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:609,15'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:609,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:610,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:611,20'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:611,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:612,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:613,20'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:613,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:614,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:615,20'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:615,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:616,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:617,20'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:617,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:618,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:619,20'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:619,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:620,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:621,20'
              BranchSideFuncs:
                - _stricmp
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:609,6'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:611,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:613,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:615,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:617,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:619,11'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:621,11'
          Dst:             _stricmp
    - functionName:    WLog_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 823
      functionLinenumberEnd: 903
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - rootLogger
      BBCount:         33
      ICount:          227
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - GetEnvironmentVariableA
        - InitializeCriticalSectionAndSpinCount
        - WLog_GetFilterLogLevel
        - WLog_ParseLogLevel
        - WLog_ParseName
        - WLog_SetLogLevel
        - _strdup
        - calloc
        - fprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:830,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:831,3'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - free
                - WLog_ParseName
                - calloc
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:833,22'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - free
                - WLog_ParseName
                - calloc
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:835,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:836,3'
              BranchSideFuncs:
                - WLog_ParseName
                - free
                - free
                - free
                - calloc
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:838,22'
              BranchSideFuncs:
                - WLog_ParseName
                - free
                - free
                - free
                - calloc
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:838,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:839,3'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - free
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:841,16'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - free
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:846,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:847,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:849,2'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:851,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:853,3'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:858,10'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:866,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:867,5'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:869,32'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_ParseLogLevel
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
                - WLog_SetLogLevel
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:869,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:871,19'
              BranchSideFuncs:
                - fprintf
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:876,32'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
                - WLog_SetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:879,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:881,27'
              BranchSideFuncs:
                - WLog_SetLogLevel
                - free
                - free
                - free
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:884,3'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:881,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:882,6'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:883,4'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - InitializeCriticalSectionAndSpinCount
                - WLog_SetLogLevel
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:889,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:891,25'
              BranchSideFuncs:
                - WLog_SetLogLevel
                - free
                - free
                - free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:895,41'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:891,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:892,4'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:893,2'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:828,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:833,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:838,7'
          Dst:             WLog_ParseName
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:846,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:860,11'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:869,8'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:871,11'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:876,13'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:881,10'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:887,11'
          Dst:             WLog_GetFilterLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:891,8'
          Dst:             WLog_SetLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:895,2'
          Dst:             InitializeCriticalSectionAndSpinCount
    - 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:    10
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_SetLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 600
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - log
        - logLevel
      BBCount:         17
      ICount:          107
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_UpdateInheritLevel
        - WLog_reset_log_filters
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:582,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:583,3'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:585,7'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:585,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:585,32'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:588,15'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:585,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:586,12'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:588,15'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:591,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:593,17'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
                - WLog_reset_log_filters
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:599,32'
              BranchSideFuncs:
                - WLog_reset_log_filters
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:595,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:596,4'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:597,2'
              BranchSideFuncs:
                - WLog_reset_log_filters
                - WLog_UpdateInheritLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:595,8'
          Dst:             WLog_UpdateInheritLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:599,9'
          Dst:             WLog_reset_log_filters
    - functionName:    WLog_GetFilterLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 737
      functionLinenumberEnd: 776
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         29
      ICount:          195
      EdgeCount:       38
      CyclomaticComplexity: 11
      functionsReached:
        - _stricmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:740,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:741,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:743,2'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:744,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:746,31'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:775,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:747,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:749,8'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:771,7'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:749,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:750,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:752,17'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:752,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:754,11'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:759,17'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:759,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:760,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:762,8'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:762,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:764,13'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:769,3'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:765,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:766,25'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:767,5'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:771,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:772,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:773,2'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:752,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:759,8'
          Dst:             _stricmp
    - functionName:    WLog_UpdateInheritLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 560
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - log
        - logLevel
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_UpdateInheritLevel
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:561,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:562,3'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:564,6'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:564,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:566,16'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:577,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:568,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:570,18'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:575,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:572,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:573,5'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:574,3'
              BranchSideFuncs:
                - WLog_UpdateInheritLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:572,9'
          Dst:             WLog_UpdateInheritLevel
    - functionName:    log_recursion
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 225
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - file
        - fkt
        - line
      BBCount:         19
      ICount:          120
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - fprintf
        - winpr_backtrace
        - winpr_backtrace_free
        - winpr_backtrace_symbols
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:187,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:188,3'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - fprintf
                - fprintf
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:190,32'
              BranchSideFuncs:
                - winpr_backtrace_symbols
                - free
                - winpr_backtrace_free
                - fprintf
                - fprintf
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:192,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:193,3'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - free
                - winpr_backtrace_free
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:209,14'
              BranchSideFuncs:
                - fprintf
                - fprintf
                - free
                - winpr_backtrace_free
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:210,3'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:212,14'
              BranchSideFuncs:
                - fprintf
                - free
                - winpr_backtrace_free
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:212,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:213,3'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:215,14'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:215,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:216,15'
              BranchSideFuncs:
                - fprintf
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:220,9'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:216,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:216,65'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:217,4'
              BranchSideFuncs:
                - free
                - winpr_backtrace_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:182,13'
          Dst:             winpr_backtrace
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:190,8'
          Dst:             winpr_backtrace_symbols
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:209,6'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:212,6'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:216,7'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:223,2'
          Dst:             winpr_backtrace_free
    - functionName:    WLog_SetContext
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1065
      functionLinenumberEnd: 1070
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - fkt
        - context
      BBCount:         6
      ICount:          40
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1066,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1066,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1066,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1066,2'
          Dst:             __assert_fail
    - functionName:    WLog_Get_int
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1007
      functionLinenumberEnd: 1026
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - root
        - name
      BBCount:         13
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_AddChild
        - WLog_FindChild
        - WLog_Free
        - WLog_New
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1010,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1012,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1025,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1012,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1013,4'
              BranchSideFuncs:
                - WLog_New
                - WLog_AddChild
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1015,24'
              BranchSideFuncs:
                - WLog_New
                - WLog_AddChild
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1015,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1016,4'
              BranchSideFuncs:
                - WLog_AddChild
                - WLog_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1018,22'
              BranchSideFuncs:
                - WLog_AddChild
                - WLog_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:1018,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1020,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:1023,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1010,14'
          Dst:             WLog_FindChild
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1015,15'
          Dst:             WLog_New
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1018,8'
          Dst:             WLog_AddChild
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1020,4'
          Dst:             WLog_Free
    - functionName:    WLog_Get
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1029
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_GetRoot
        - WLog_Get_int
      functionUses:    268
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1030,15'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:1031,9'
          Dst:             WLog_Get_int
    - functionName:    WLog_GetRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 925
      functionLinenumberEnd: 930
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WLog_InitializeRoot
        - winpr_InitOnceExecuteOnce
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:926,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:926,7'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:926,7'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:926,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:927,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:929,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:926,7'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:926,7'
          Dst:             WLog_InitializeRoot
    - functionName:    WLog_InitializeRoot
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
        - Parameter
        - Context
      BBCount:         33
      ICount:          180
      EdgeCount:       44
      CyclomaticComplexity: 13
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_New
        - WLog_ParseFilters
        - WLog_SetLogAppenderType
        - WLog_Uninit_
        - _stricmp
        - atexit
        - fprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:119,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:120,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
                - malloc
                - GetEnvironmentVariableA
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:122,2'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
                - malloc
                - GetEnvironmentVariableA
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:126,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:128,23'
              BranchSideFuncs:
                - malloc
                - WLog_Uninit_
                - GetEnvironmentVariableA
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_ParseFilters
                - atexit
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:163,31'
              BranchSideFuncs:
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:130,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:131,4'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
                - fprintf
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:133,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
                - fprintf
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:133,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:135,18'
              BranchSideFuncs:
                - fprintf
                - free
                - WLog_Uninit_
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:140,16'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:140,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:141,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:142,21'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:142,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:143,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:144,21'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:144,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:145,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:148,21'
              BranchSideFuncs:
                - _stricmp
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:148,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:149,20'
              BranchSideFuncs:
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:157,21'
              BranchSideFuncs:
                - _stricmp
                - free
                - WLog_SetLogAppenderType
                - WLog_Uninit_
                - WLog_ParseFilters
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:163,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:164,3'
              BranchSideFuncs:
                - WLog_ParseFilters
                - WLog_Uninit_
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:166,25'
              BranchSideFuncs:
                - WLog_ParseFilters
                - WLog_Uninit_
                - atexit
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:166,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:167,3'
              BranchSideFuncs:
                - atexit
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:169,8'
              BranchSideFuncs:
                - atexit
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:119,20'
          Dst:             WLog_New
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:124,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:133,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:135,10'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:140,7'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:142,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:144,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:148,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:157,12'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:163,7'
          Dst:             WLog_SetLogAppenderType
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:166,7'
          Dst:             WLog_ParseFilters
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:169,8'
          Dst:             atexit
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:169,8'
          Dst:             WLog_Uninit_
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:173,2'
          Dst:             WLog_Uninit_
    - 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:    WLog_AddStringLogFilters
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 553
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - filter
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_AddStringLogFilters_int
        - WLog_GetRoot
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:555,15'
          Dst:             WLog_GetRoot
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:556,9'
          Dst:             WLog_AddStringLogFilters_int
    - functionName:    WLog_SetStringLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - level
      BBCount:         11
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_ParseLogLevel
        - WLog_SetLogLevel
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:460,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:460,15'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - WLog_SetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:461,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:460,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:461,3'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - WLog_SetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:463,27'
              BranchSideFuncs:
                - WLog_ParseLogLevel
                - WLog_SetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:465,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:466,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:468,26'
              BranchSideFuncs:
                - WLog_SetLogLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:463,8'
          Dst:             WLog_ParseLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:468,9'
          Dst:             WLog_SetLogLevel
    - functionName:    WLog_IsLevelActive
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _log
        - _log_level
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_GetLogLevel
      functionUses:    268
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:445,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:446,3'
              BranchSideFuncs:
                - WLog_GetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:448,27'
              BranchSideFuncs:
                - WLog_GetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:450,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:451,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:453,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:448,10'
          Dst:             WLog_GetLogLevel
    - functionName:    WLog_GetLogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         15
      ICount:          87
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_GetFilterLogLevel
        - WLog_GetLogLevel
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:427,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:428,3'
              BranchSideFuncs:
                - WLog_GetLogLevel
                - WLog_GetFilterLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:430,6'
              BranchSideFuncs:
                - WLog_GetLogLevel
                - WLog_GetFilterLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:430,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:431,45'
              BranchSideFuncs:
                - WLog_GetFilterLogLevel
                - WLog_GetLogLevel
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:433,6'
              BranchSideFuncs:
                - WLog_GetLogLevel
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:433,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:434,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:435,11'
              BranchSideFuncs:
                - WLog_GetLogLevel
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:431,22'
          Dst:             WLog_GetFilterLogLevel
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:436,16'
          Dst:             WLog_GetLogLevel
    - functionName:    WLog_PrintMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 422
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - type
        - level
        - line
        - file
        - function
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_PrintMessageVA
      functionUses:    267
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:420,11'
          Dst:             WLog_PrintMessageVA
    - functionName:    WLog_PrintMessageVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 353
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - type
        - level
        - line
        - file
        - function
        - args
      BBCount:         45
      ICount:          391
      EdgeCount:       56
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Write
        - WLog_WriteData
        - WLog_WriteImage
        - WLog_WritePacket
        - strchr
        - vsnprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:362,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:365,27'
              BranchSideFuncs:
                - strchr
                - WLog_Write
                - vsnprintf
                - WLog_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:387,19'
              BranchSideFuncs:
                - WLog_WriteData
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:393,24'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:401,25'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:408,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:365,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:365,27'
              BranchSideFuncs:
                - strchr
                - WLog_Write
                - vsnprintf
                - WLog_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:365,27'
              BranchSideFuncs:
                - strchr
                - WLog_Write
                - vsnprintf
                - WLog_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:367,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:369,34'
              BranchSideFuncs:
                - vsnprintf
                - WLog_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:374,10'
              BranchSideFuncs:
                - vsnprintf
                - WLog_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:376,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:378,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:380,26'
              BranchSideFuncs:
                - WLog_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:387,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:387,19'
              BranchSideFuncs:
                - WLog_WriteData
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:387,19'
              BranchSideFuncs:
                - WLog_WriteData
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:388,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:411,9'
              BranchSideFuncs:
                - WLog_WriteData
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:411,9'
              BranchSideFuncs:
                - WLog_WriteData
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:393,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:393,24'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:393,24'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:394,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:394,25'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:394,25'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:395,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:395,26'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:395,26'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:396,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:411,9'
              BranchSideFuncs:
                - WLog_WriteImage
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:411,9'
              BranchSideFuncs:
                - WLog_WriteImage
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:401,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:401,25'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:401,25'
              BranchSideFuncs:
                - WLog_WritePacket
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:402,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:402,27'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:402,27'
              BranchSideFuncs:
                - WLog_WritePacket
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:403,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:411,9'
              BranchSideFuncs:
                - WLog_WritePacket
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:411,9'
              BranchSideFuncs:
                - WLog_WritePacket
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:367,9'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:370,14'
          Dst:             WLog_Write
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:376,9'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:381,14'
          Dst:             WLog_Write
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:389,13'
          Dst:             WLog_WriteData
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:397,13'
          Dst:             WLog_WriteImage
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:404,13'
          Dst:             WLog_WritePacket
    - functionName:    WLog_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 256
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
      BBCount:         17
      ICount:          120
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:233,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:234,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:236,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:236,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:237,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:240,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:237,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:237,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:238,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:242,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:244,7'
              BranchSideFuncs:
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:254,24'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:244,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:245,27'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:248,4'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:231,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:237,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:240,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:245,13'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:254,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WriteData
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
      BBCount:         16
      ICount:          120
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:264,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:265,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:267,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:267,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:268,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:271,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:268,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:268,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:269,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:271,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:272,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:274,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:276,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:277,26'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:280,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:262,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:268,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:274,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:277,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:285,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WriteImage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 290
      functionLinenumberEnd: 318
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
      BBCount:         16
      ICount:          120
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:295,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:296,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:298,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:298,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:299,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:302,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:299,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:299,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:300,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:302,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:303,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:305,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:307,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:308,26'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:311,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:293,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:299,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:305,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:308,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:316,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_WritePacket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/wlog.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 349
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
      BBCount:         16
      ICount:          120
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - WLog_GetLogAppender
        - WLog_OpenAppender
        - log_recursion
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:326,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:327,3'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:329,7'
              BranchSideFuncs:
                - WLog_OpenAppender
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:329,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:330,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:333,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:330,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:330,29'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:331,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:333,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:334,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:336,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - log_recursion
        - Branch String:   'winpr/libwinpr/utils/wlog/wlog.c:338,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:339,26'
              BranchSideFuncs:
                - log_recursion
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/wlog.c:342,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:324,13'
          Dst:             WLog_GetLogAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:330,8'
          Dst:             WLog_OpenAppender
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:336,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:339,12'
          Dst:             log_recursion
        - Src:             'winpr/libwinpr/utils/wlog/wlog.c:347,2'
          Dst:             LeaveCriticalSection
    - functionName:    WLog_ConfigureAppender
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - setting
        - value
      BBCount:         13
      ICount:          71
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - strnlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:170,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:170,20'
              BranchSideFuncs:
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:171,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:170,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:170,40'
              BranchSideFuncs:
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:171,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:171,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:173,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:174,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:176,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:170,32'
          Dst:             strnlen
    - functionName:    WLog_Appender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 150
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - log
        - logAppenderType
      BBCount:         21
      ICount:          130
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - InitializeCriticalSectionAndSpinCount
        - WLog_Appender_Free
        - WLog_BinaryAppender_New
        - WLog_CallbackAppender_New
        - WLog_ConsoleAppender_New
        - WLog_FileAppender_New
        - WLog_Layout_New
        - WLog_SyslogAppender_New
        - WLog_UdpAppender_New
        - fprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:98,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:99,3'
              BranchSideFuncs:
                - WLog_UdpAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
                - WLog_SyslogAppender_New
                - WLog_CallbackAppender_New
                - WLog_BinaryAppender_New
                - WLog_FileAppender_New
                - WLog_ConsoleAppender_New
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:101,10'
              BranchSideFuncs:
                - WLog_UdpAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
                - WLog_SyslogAppender_New
                - WLog_CallbackAppender_New
                - WLog_BinaryAppender_New
                - WLog_FileAppender_New
                - WLog_ConsoleAppender_New
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:101,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:104,40'
              BranchSideFuncs:
                - WLog_ConsoleAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:107,37'
              BranchSideFuncs:
                - WLog_FileAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:110,39'
              BranchSideFuncs:
                - WLog_BinaryAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:113,41'
              BranchSideFuncs:
                - WLog_CallbackAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:117,39'
              BranchSideFuncs:
                - WLog_SyslogAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:126,36'
              BranchSideFuncs:
                - WLog_UdpAppender_New
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:129,18'
              BranchSideFuncs:
                - fprintf
                - WLog_ConsoleAppender_New
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:135,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:136,39'
              BranchSideFuncs:
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:138,7'
              BranchSideFuncs:
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:138,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:139,3'
              BranchSideFuncs:
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:141,43'
              BranchSideFuncs:
                - WLog_Layout_New
                - WLog_Appender_Free
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:141,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:143,22'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:147,41'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:104,15'
          Dst:             WLog_ConsoleAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:107,15'
          Dst:             WLog_FileAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:110,15'
          Dst:             WLog_BinaryAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:113,15'
          Dst:             WLog_CallbackAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:117,15'
          Dst:             WLog_SyslogAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:126,15'
          Dst:             WLog_UdpAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:129,10'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:136,14'
          Dst:             WLog_ConsoleAppender_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:141,27'
          Dst:             WLog_Layout_New
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:143,3'
          Dst:             WLog_Appender_Free
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:147,2'
          Dst:             InitializeCriticalSectionAndSpinCount
    - functionName:    WLog_Appender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         9
      ICount:          56
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - DeleteCriticalSection
        - WLog_Layout_Free
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:26,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:27,3'
              BranchSideFuncs:
                - DeleteCriticalSection
                - WLog_Layout_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:29,6'
              BranchSideFuncs:
                - DeleteCriticalSection
                - WLog_Layout_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:29,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:31,20'
              BranchSideFuncs:
                - WLog_Layout_Free
                - DeleteCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:35,25'
              BranchSideFuncs:
                - DeleteCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:31,3'
          Dst:             WLog_Layout_Free
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:35,2'
          Dst:             DeleteCriticalSection
    - functionName:    WLog_SetLogAppenderType
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - log
        - logAppenderType
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Appender_Free
        - WLog_Appender_New
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:155,3'
              BranchSideFuncs:
                - WLog_Appender_New
                - WLog_Appender_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:157,6'
              BranchSideFuncs:
                - WLog_Appender_New
                - WLog_Appender_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:159,22'
              BranchSideFuncs:
                - WLog_Appender_Free
                - WLog_Appender_New
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:163,36'
              BranchSideFuncs:
                - WLog_Appender_New
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:159,3'
          Dst:             WLog_Appender_Free
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:163,18'
          Dst:             WLog_Appender_New
    - functionName:    WLog_CloseAppender
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:79,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:80,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:82,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:83,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:85,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:85,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:87,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:91,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:77,13'
          Dst:             WLog_GetLogAppender
    - functionName:    WLog_GetLogAppender
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         8
      ICount:          46
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:42,3'
              BranchSideFuncs:
                - WLog_GetLogAppender
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:44,7'
              BranchSideFuncs:
                - WLog_GetLogAppender
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:45,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:47,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:45,10'
          Dst:             WLog_GetLogAppender
    - functionName:    WLog_OpenAppender
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Appender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         11
      ICount:          72
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:58,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:60,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:60,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:61,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:63,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Appender.c:63,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:65,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Appender.c:69,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Appender.c:55,13'
          Dst:             WLog_GetLogAppender
    - functionName:    WLog_FileAppender_SetOutputFileName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - filename
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:45,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:47,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:42,23'
          Dst:             _strdup
    - functionName:    WLog_FileAppender_SetOutputFilePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - filepath
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _strdup
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:54,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:55,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:57,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:52,23'
          Dst:             _strdup
    - functionName:    WLog_FileAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - setting
        - value
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_FileAppender_SetOutputFileName
        - WLog_FileAppender_SetOutputFilePath
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:193,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:193,25'
              BranchSideFuncs:
                - strnlen
                - strcmp
                - WLog_FileAppender_SetOutputFileName
                - strcmp
                - WLog_FileAppender_SetOutputFilePath
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:194,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:193,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:194,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:196,32'
              BranchSideFuncs:
                - strcmp
                - WLog_FileAppender_SetOutputFileName
                - strcmp
                - WLog_FileAppender_SetOutputFilePath
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:197,46'
              BranchSideFuncs:
                - strcmp
                - WLog_FileAppender_SetOutputFilePath
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:199,32'
              BranchSideFuncs:
                - strcmp
                - WLog_FileAppender_SetOutputFilePath
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:199,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:200,46'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:202,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:193,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:196,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:197,10'
          Dst:             WLog_FileAppender_SetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:199,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:200,10'
          Dst:             WLog_FileAppender_SetOutputFilePath
    - functionName:    WLog_FileAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:209,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:211,37'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:       []
    - functionName:    WLog_FileAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 173
      functionLinenumberEnd: 186
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          79
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_ImageMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:177,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:177,15'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_ImageMessage_Write
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:178,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:177,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:177,28'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_ImageMessage_Write
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:178,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:177,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:178,3'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_ImageMessage_Write
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:180,21'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_ImageMessage_Write
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:181,17'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:182,2'
          Dst:             WLog_ImageMessage_Write
    - functionName:    WLog_FileAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_DataMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:159,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:159,15'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_DataMessage_Write
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:160,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:159,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:159,28'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_DataMessage_Write
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:160,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:159,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:160,3'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_DataMessage_Write
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:162,19'
              BranchSideFuncs:
                - WLog_Message_GetOutputFileName
                - WLog_DataMessage_Write
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:163,17'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:164,2'
          Dst:             WLog_DataMessage_Write
    - functionName:    WLog_FileAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 130
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         13
      ICount:          93
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - fflush
        - fprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:135,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:135,15'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:136,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:135,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:135,28'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:136,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:135,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:136,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:138,36'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:141,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:142,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:144,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
                - fflush
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:145,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:146,8'
          Dst:             fprintf
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:147,8'
          Dst:             fflush
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_FileAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 113
      functionLinenumberEnd: 127
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         11
      ICount:          62
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:116,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:116,15'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:117,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:117,3'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:119,36'
              BranchSideFuncs:
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:122,3'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:124,15'
              BranchSideFuncs:
                - fclose
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:124,8'
          Dst:             fclose
    - functionName:    WLog_FileAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         31
      ICount:          185
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - GetCombinedPath
        - GetCurrentProcessId
        - GetKnownSubPath
        - UnixChangeFileMode
        - snprintf
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:64,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:64,15'
              BranchSideFuncs:
                - GetKnownSubPath
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:65,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:64,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:65,3'
              BranchSideFuncs:
                - GetKnownSubPath
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:67,36'
              BranchSideFuncs:
                - GetKnownSubPath
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:69,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:71,28'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:77,7'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:73,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:74,4'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:75,2'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:77,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:79,35'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:87,7'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:81,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:82,4'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:84,19'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:87,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:90,23'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:96,28'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:92,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:93,4'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:94,2'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:96,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:98,27'
              BranchSideFuncs:
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:104,45'
              BranchSideFuncs:
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:98,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:99,4'
              BranchSideFuncs:
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:101,22'
              BranchSideFuncs:
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:106,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:107,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:109,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:71,28'
          Dst:             GetKnownSubPath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:84,72'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:84,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:90,7'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:96,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:98,8'
          Dst:             winpr_PathMakePath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:101,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:104,33'
          Dst:             winpr_fopen
    - functionName:    WLog_FileAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/FileAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         27
      ICount:          196
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_FileAppender_SetOutputFileName
        - WLog_FileAppender_SetOutputFilePath
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:227,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:228,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - GetEnvironmentVariableA
                - malloc
                - free
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
                - malloc
                - GetEnvironmentVariableA
                - WLog_FileAppender_SetOutputFilePath
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:230,2'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - GetEnvironmentVariableA
                - malloc
                - free
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
                - malloc
                - GetEnvironmentVariableA
                - WLog_FileAppender_SetOutputFilePath
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:243,8'
              BranchSideFuncs:
                - malloc
                - free
                - GetEnvironmentVariableA
                - WLog_FileAppender_SetOutputFilePath
                - free
                - GetEnvironmentVariableA
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:262,7'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - malloc
                - free
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:246,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:247,4'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_FileAppender_SetOutputFilePath
                - free
                - free
                - GetEnvironmentVariableA
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:249,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_FileAppender_SetOutputFilePath
                - free
                - free
                - GetEnvironmentVariableA
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:249,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:251,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:255,48'
              BranchSideFuncs:
                - WLog_FileAppender_SetOutputFilePath
                - free
                - free
                - GetEnvironmentVariableA
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:258,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:259,4'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - malloc
                - free
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:260,2'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - malloc
                - free
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:265,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:267,8'
              BranchSideFuncs:
                - malloc
                - free
                - free
                - GetEnvironmentVariableA
                - free
                - WLog_FileAppender_SetOutputFileName
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:281,24'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:270,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:271,4'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - free
                - free
                - free
                - WLog_FileAppender_SetOutputFileName
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:273,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - free
                - free
                - free
                - WLog_FileAppender_SetOutputFileName
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:273,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:274,49'
              BranchSideFuncs:
                - WLog_FileAppender_SetOutputFileName
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:275,8'
              BranchSideFuncs:
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/FileAppender.c:277,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:278,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/FileAppender.c:279,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:225,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:239,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:249,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:255,12'
          Dst:             WLog_FileAppender_SetOutputFilePath
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:263,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:273,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/FileAppender.c:274,13'
          Dst:             WLog_FileAppender_SetOutputFileName
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:841,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:841,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:767,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:767,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.1094
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.1094
        - Branch String:   'winpr/include/winpr/stream.h:769,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.1094
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.1094
        - Branch String:   'winpr/include/winpr/stream.h:770,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.1094
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.1094
        - Branch String:   'winpr/include/winpr/stream.h:771,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_Seek.1094
            - BranchSide:      'winpr/include/winpr/stream.h:772,11'
              BranchSideFuncs:
                - Stream_Seek.1094
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:769,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:770,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:773,4'
          Dst:             Stream_Seek
    - functionName:    Stream_Write_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          90
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:735,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:735,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:736,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:736,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:736,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:737,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:736,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             __assert_fail
    - functionName:    WLog_BinaryAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 206
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - setting
        - value
      BBCount:         19
      ICount:          100
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - _strdup
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:187,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:187,25'
              BranchSideFuncs:
                - strnlen
                - strcmp
                - _strdup
                - strcmp
                - _strdup
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:188,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:187,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:188,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:190,32'
              BranchSideFuncs:
                - strcmp
                - _strdup
                - strcmp
                - _strdup
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:190,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:192,51'
              BranchSideFuncs:
                - strcmp
                - _strdup
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:196,37'
              BranchSideFuncs:
                - strcmp
                - _strdup
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:193,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:194,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:195,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:196,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:198,51'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:203,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:199,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:200,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:201,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:187,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:190,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:192,30'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:196,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:198,30'
          Dst:             _strdup
    - functionName:    WLog_BinaryAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 209
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:211,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:211,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:213,41'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:       []
    - functionName:    WLog_BinaryAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 178
      functionLinenumberEnd: 179
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_BinaryAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 173
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_BinaryAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 108
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         30
      ICount:          245
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached:
        - Stream_Buffer
        - Stream_Free
        - Stream_New
        - Stream_SealLength
        - Stream_Write
        - Stream_Write_UINT32
        - __assert_fail
        - fwrite
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:118,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:118,15'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:119,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:118,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:118,28'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:119,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:118,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:119,3'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:121,40'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:125,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:126,3'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:128,27'
              BranchSideFuncs:
                - strnlen
                - strnlen
                - strnlen
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:135,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:135,39'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:137,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:135,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:136,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:137,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:136,40'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:136,44'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:137,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:135,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:137,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:139,23'
              BranchSideFuncs:
                - Stream_New
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:140,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:141,3'
              BranchSideFuncs:
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,22'
              BranchSideFuncs:
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - __assert_fail
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
              BranchSideFuncs:
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,22'
              BranchSideFuncs:
                - Stream_Write_UINT32.1104
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_Write_UINT32.1104
                - Stream_Write.1100
                - Stream_SealLength
                - Stream_Buffer
                - fwrite
                - Stream_Free
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:162,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:163,7'
              BranchSideFuncs:
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:165,14'
              BranchSideFuncs:
                - Stream_Free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:128,19'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:129,23'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:130,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:139,6'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:143,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:145,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:146,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:148,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:149,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:151,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:152,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:154,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:155,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:157,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:158,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:160,2'
          Dst:             Stream_SealLength
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:162,13'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:162,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:165,2'
          Dst:             Stream_Free
    - functionName:    WLog_BinaryAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 104
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         11
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fclose
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:91,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:92,3'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:94,40'
              BranchSideFuncs:
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:96,3'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:98,6'
              BranchSideFuncs:
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:98,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:99,16'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:101,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:99,9'
          Dst:             fclose
    - functionName:    WLog_BinaryAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 85
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         31
      ICount:          185
      EdgeCount:       42
      CyclomaticComplexity: 13
      functionsReached:
        - GetCombinedPath
        - GetCurrentProcessId
        - GetKnownSubPath
        - UnixChangeFileMode
        - snprintf
        - winpr_PathFileExists
        - winpr_PathMakePath
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:44,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:44,15'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:45,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:45,3'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:47,40'
              BranchSideFuncs:
                - malloc
                - GetCurrentProcessId
                - snprintf
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:48,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:50,37'
              BranchSideFuncs:
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:57,7'
              BranchSideFuncs:
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:51,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:52,4'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:53,19'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetKnownSubPath
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:59,30'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:64,7'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:60,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:61,4'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:62,2'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:64,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:67,23'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:72,28'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:68,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:69,4'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:70,2'
              BranchSideFuncs:
                - winpr_PathFileExists
                - winpr_PathMakePath
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:72,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:74,27'
              BranchSideFuncs:
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:79,47'
              BranchSideFuncs:
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:74,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:75,4'
              BranchSideFuncs:
                - UnixChangeFileMode
                - winpr_fopen
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:76,22'
              BranchSideFuncs:
                - UnixChangeFileMode
                - winpr_fopen
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:82,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:84,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:54,19'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:53,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:59,30'
          Dst:             GetKnownSubPath
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:67,7'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:72,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:74,8'
          Dst:             winpr_PathMakePath
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:76,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:79,35'
          Dst:             winpr_fopen
    - functionName:    WLog_BinaryAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/BinaryAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         6
      ICount:          59
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/BinaryAppender.c:226,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:227,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/BinaryAppender.c:229,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/BinaryAppender.c:225,40'
          Dst:             calloc
    - functionName:    WLog_CallbackAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 119
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - setting
        - value
      BBCount:         11
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:122,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:122,24'
              BranchSideFuncs:
                - strcmp
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:123,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:122,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:123,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:125,38'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:125,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:127,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:130,39'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:122,17'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:125,38'
          Dst:             calloc
    - functionName:    WLog_CallbackAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:137,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:139,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:142,44'
              BranchSideFuncs:
                - free
                - free
      Callsites:       []
    - functionName:    WLog_CallbackAppender_WritePacketMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:105,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:106,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:108,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:112,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:112,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:115,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:113,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:115,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:109,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 82
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:86,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:87,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:89,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:93,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:93,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:96,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:93,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:94,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:96,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:90,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:67,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:68,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:70,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:74,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:74,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:77,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:74,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:75,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:77,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:71,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          84
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:48,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:50,26'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:55,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:55,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:58,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:55,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:56,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:58,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:51,2'
          Dst:             WLog_Layout_GetMessagePrefix
    - functionName:    WLog_CallbackAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_CallbackAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_CallbackAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/CallbackAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/CallbackAppender.c:153,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:154,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/CallbackAppender.c:156,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/CallbackAppender.c:152,44'
          Dst:             calloc
    - functionName:    WLog_ConsoleAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
      BBCount:         9
      ICount:          41
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Pcap_Close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:237,6'
              BranchSideFuncs:
                - free
                - Pcap_Close
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:239,7'
              BranchSideFuncs:
                - free
                - Pcap_Close
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:239,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:241,23'
              BranchSideFuncs:
                - Pcap_Close
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:244,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:241,4'
          Dst:             Pcap_Close
    - functionName:    WLog_ConsoleAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 211
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - setting
        - value
      BBCount:         23
      ICount:          112
      EdgeCount:       30
      CyclomaticComplexity: 9
      functionsReached:
        - strcmp
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:215,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:215,25'
              BranchSideFuncs:
                - strnlen
                - strcmp
                - strcmp
                - strcmp
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:216,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:215,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:216,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:218,29'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:218,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:219,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:221,24'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:222,3'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:223,29'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:223,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:224,3'
              BranchSideFuncs:
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:225,30'
              BranchSideFuncs:
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:225,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:226,3'
              BranchSideFuncs:
                - strcmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:227,28'
              BranchSideFuncs:
                - strcmp
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:227,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:228,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:230,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:215,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:218,6'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:221,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:223,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:225,12'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:227,12'
          Dst:             strcmp
    - functionName:    WLog_ConsoleAppender_WritePacketMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         9
      ICount:          78
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Pcap_Open
        - WLog_Message_GetOutputFileName
        - WLog_PacketMessage_Write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:198,18'
              BranchSideFuncs:
                - WLog_PacketMessage_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:203,6'
              BranchSideFuncs:
                - WLog_PacketMessage_Write
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:204,43'
              BranchSideFuncs:
                - WLog_PacketMessage_Write
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:207,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:198,18'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:199,43'
          Dst:             Pcap_Open
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:204,10'
          Dst:             WLog_PacketMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 165
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_ImageMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:173,17'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:175,2'
          Dst:             WLog_ImageMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 143
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_DataMessage_Write
        - WLog_Message_GetOutputFileName
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:151,17'
          Dst:             WLog_Message_GetOutputFileName
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:153,2'
          Dst:             WLog_DataMessage_Write
    - functionName:    WLog_ConsoleAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         19
      ICount:          121
      EdgeCount:       19
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - fprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:58,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:60,42'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:110,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:113,9'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:116,9'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:119,12'
              BranchSideFuncs:
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:119,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:124,11'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:124,11'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:124,11'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:127,11'
              BranchSideFuncs:
                - fprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:133,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:134,17'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:136,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:63,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:134,9'
          Dst:             fprintf
    - functionName:    WLog_ConsoleAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 47
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_ConsoleAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 43
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_ConsoleAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ConsoleAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         6
      ICount:          65
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ConsoleAppender.c:254,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:255,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ConsoleAppender.c:257,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ConsoleAppender.c:252,42'
          Dst:             calloc
    - functionName:    WLog_UdpAppender_Set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
        - setting
        - value
      BBCount:         17
      ICount:          104
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_UdpAppender_Open
        - _strdup
        - strncmp
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:134,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:134,25'
              BranchSideFuncs:
                - strnlen
                - strncmp
                - _strdup
                - WLog_UdpAppender_Open
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:135,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:134,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:135,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:137,14'
              BranchSideFuncs:
                - strncmp
                - _strdup
                - WLog_UdpAppender_Open
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:137,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:138,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:140,2'
              BranchSideFuncs:
                - _strdup
                - WLog_UdpAppender_Open
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:142,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:143,8'
              BranchSideFuncs:
                - free
                - _strdup
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:145,43'
              BranchSideFuncs:
                - _strdup
                - WLog_UdpAppender_Open
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:146,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:146,68'
              BranchSideFuncs:
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:146,37'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:134,17'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:137,6'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:145,22'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:146,40'
          Dst:             WLog_UdpAppender_Open
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_UdpAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 39
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         14
      ICount:          146
      EdgeCount:       19
      CyclomaticComplexity: 7
      functionsReached:
        - freeaddrinfo
        - getaddrinfo
        - strchr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:48,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:49,3'
              BranchSideFuncs:
                - strchr
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:51,34'
              BranchSideFuncs:
                - strchr
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:53,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:54,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:56,20'
              BranchSideFuncs:
                - strchr
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:58,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:59,3'
              BranchSideFuncs:
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:61,13'
              BranchSideFuncs:
                - getaddrinfo
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:68,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:69,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:71,6'
              BranchSideFuncs:
                - freeaddrinfo
                - freeaddrinfo
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:71,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:73,16'
              BranchSideFuncs:
                - freeaddrinfo
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:77,10'
              BranchSideFuncs:
                - freeaddrinfo
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:56,13'
          Dst:             strchr
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:66,11'
          Dst:             getaddrinfo
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:73,3'
          Dst:             freeaddrinfo
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:79,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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_UdpAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 166
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - closesocket
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:153,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:153,6'
              BranchSideFuncs:
                - free
                - free
                - closesocket
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:155,35'
              BranchSideFuncs:
                - free
                - free
                - closesocket
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:157,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:159,16'
              BranchSideFuncs:
                - closesocket
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:163,8'
              BranchSideFuncs:
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:159,4'
          Dst:             closesocket
    - functionName:    WLog_UdpAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:122,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:122,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:123,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:122,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:122,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:123,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:122,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:123,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:125,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_UdpAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:113,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:113,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:114,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:113,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:113,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:114,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:113,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:114,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:116,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_UdpAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         11
      ICount:          111
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Layout_GetMessagePrefix
        - _sendto
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:96,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:96,15'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:97,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:96,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:96,28'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:97,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:96,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:97,3'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:99,34'
              BranchSideFuncs:
                - WLog_Layout_GetMessagePrefix
                - strnlen
                - _sendto
                - strnlen
                - _sendto
                - _sendto
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:101,2'
          Dst:             WLog_Layout_GetMessagePrefix
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:102,57'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:102,2'
          Dst:             _sendto
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:104,55'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:104,2'
          Dst:             _sendto
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:106,2'
          Dst:             _sendto
    - functionName:    WLog_UdpAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:85,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:85,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:86,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:85,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:86,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:88,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_UdpAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/UdpAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         21
      ICount:          160
      EdgeCount:       28
      CyclomaticComplexity: 9
      functionsReached:
        - GetEnvironmentVariableA
        - WLog_UdpAppender_Open
        - _socket
        - _strdup
        - calloc
        - closesocket
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:175,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:176,3'
              BranchSideFuncs:
                - _socket
                - GetEnvironmentVariableA
                - _strdup
                - free
                - closesocket
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:178,2'
              BranchSideFuncs:
                - _socket
                - GetEnvironmentVariableA
                - _strdup
                - free
                - closesocket
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:189,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:191,7'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - closesocket
                - free
                - malloc
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:194,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:196,34'
              BranchSideFuncs:
                - malloc
                - free
                - closesocket
                - free
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:209,20'
              BranchSideFuncs:
                - _strdup
                - free
                - closesocket
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:198,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:199,4'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
                - free
                - closesocket
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:201,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - WLog_UdpAppender_Open
                - free
                - closesocket
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:201,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:202,4'
              BranchSideFuncs:
                - free
                - closesocket
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:204,30'
              BranchSideFuncs:
                - WLog_UdpAppender_Open
                - free
                - closesocket
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:204,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:205,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:206,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/UdpAppender.c:211,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/UdpAppender.c:212,4'
              BranchSideFuncs:
                - free
                - closesocket
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:173,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:186,19'
          Dst:             _socket
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:192,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:201,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:204,8'
          Dst:             WLog_UdpAppender_Open
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:209,20'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/utils/wlog/UdpAppender.c:218,2'
          Dst:             closesocket
    - functionName:    getSyslogLevel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - level
      BBCount:         12
      ICount:          53
      EdgeCount:       22
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:33,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:37,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:37,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:39,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:41,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:43,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:45,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:46,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:48,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - appender
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_WriteImageMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         14
      ICount:          78
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getSyslogLevel
        - syslog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:103,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:103,15'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:104,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:103,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:103,28'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:104,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:103,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:104,3'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:106,31'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:107,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:108,10'
              BranchSideFuncs:
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:111,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:106,16'
          Dst:             getSyslogLevel
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:108,3'
          Dst:             syslog
    - functionName:    syslog
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_WriteDataMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getSyslogLevel
        - syslog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:88,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:88,15'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:89,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:88,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:88,28'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:89,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:88,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:89,3'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:91,31'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:92,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:93,10'
              BranchSideFuncs:
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:95,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:91,16'
          Dst:             getSyslogLevel
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:93,3'
          Dst:             syslog
    - functionName:    WLog_SyslogAppender_WriteMessage
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
        - message
      BBCount:         14
      ICount:          72
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - getSyslogLevel
        - syslog
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:73,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:73,15'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:74,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:73,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:73,28'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:74,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:73,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:74,3'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:76,31'
              BranchSideFuncs:
                - getSyslogLevel
                - syslog
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:77,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:78,10'
              BranchSideFuncs:
                - syslog
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:80,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:76,16'
          Dst:             getSyslogLevel
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:78,3'
          Dst:             syslog
    - functionName:    WLog_SyslogAppender_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 61
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:62,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:62,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:63,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:62,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:63,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:65,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 53
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - appender
      BBCount:         7
      ICount:          33
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:54,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:54,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:55,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:54,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:55,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:57,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    WLog_SyslogAppender_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/SyslogAppender.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 137
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         6
      ICount:          56
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/SyslogAppender.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:125,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/SyslogAppender.c:127,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/SyslogAppender.c:123,34'
          Dst:             calloc
    - functionName:    RemoveVectoredContinueHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 95
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Handle
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    AddVectoredContinueHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 91
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - First
        - Handler
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RemoveVectoredExceptionHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 86
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Handle
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    AddVectoredExceptionHandler
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 80
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - First
        - Handler
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetUnhandledExceptionFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 76
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpTopLevelExceptionFilter
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    UnhandledExceptionFilter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ExceptionInfo
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RaiseException
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 66
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwExceptionCode
        - dwExceptionFlags
        - nNumberOfArguments
        - lpArguments
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RestoreLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 60
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwErrCode
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwErrCode
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NtCurrentTeb
      functionUses:    248
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/error/error.c:53,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:53,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/error/error.c:55,24'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:52,12'
          Dst:             NtCurrentTeb
    - functionName:    GetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NtCurrentTeb
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/error/error.c:42,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:42,12'
              BranchSideFuncs:
                - NtCurrentTeb
            - BranchSide:      'winpr/libwinpr/error/error.c:42,12'
              BranchSideFuncs:
                - NtCurrentTeb
        - Branch String:   'winpr/libwinpr/error/error.c:43,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/error/error.c:45,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/error/error.c:47,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/error/error.c:42,12'
          Dst:             NtCurrentTeb
    - functionName:    SetErrorMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - uMode
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetErrorMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/error/error.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    ProcessCleanupHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 513
      functionLinenumberEnd: 522
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         12
      ICount:          64
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - waitpid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:516,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:516,2'
              BranchSideFuncs:
                - waitpid
            - BranchSide:      'winpr/libwinpr/thread/process.c:517,6'
              BranchSideFuncs:
                - waitpid
        - Branch String:   'winpr/libwinpr/thread/process.c:517,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:517,6'
              BranchSideFuncs:
                - waitpid
            - BranchSide:      'winpr/libwinpr/thread/process.c:519,15'
              BranchSideFuncs:
                - waitpid
        - Branch String:   'winpr/libwinpr/thread/process.c:519,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:520,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:521,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:516,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/process.c:519,7'
          Dst:             waitpid
    - 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:    ProcessGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 503
      functionLinenumberEnd: 510
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ProcessHandleIsHandle
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:506,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:507,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:509,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:506,7'
          Dst:             ProcessHandleIsHandle
    - functionName:    ProcessHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:499,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    pidfd_open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 579
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - pid
      BBCount:         17
      ICount:          89
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - __errno_location
        - close
        - fcntl64
        - syscall
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:559,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:559,16'
              BranchSideFuncs:
                - __errno_location
                - syscall
                - fcntl64
                - fcntl64
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:575,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:559,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:563,7'
              BranchSideFuncs:
                - syscall
                - fcntl64
                - fcntl64
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:575,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:565,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:566,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:568,17'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:569,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:569,26'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:571,10'
              BranchSideFuncs:
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:569,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:571,10'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:574,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:558,11'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:559,16'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/thread/process.c:564,8'
          Dst:             syscall
        - Src:             'winpr/libwinpr/thread/process.c:568,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:569,20'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/thread/process.c:571,4'
          Dst:             close
    - functionName:    syscall
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      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:    22
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    ProcessHandleCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 494
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         9
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:487,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:487,2'
              BranchSideFuncs:
                - free
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:488,6'
              BranchSideFuncs:
                - free
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:488,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:488,6'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:490,9'
              BranchSideFuncs:
                - close
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:487,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/process.c:490,3'
          Dst:             close
    - functionName:    CreateProcessHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 596
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - pid
      BBCount:         9
      ICount:          67
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - pidfd_open
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:587,3'
              BranchSideFuncs:
                - pidfd_open
            - BranchSide:      'winpr/libwinpr/thread/process.c:589,17'
              BranchSideFuncs:
                - pidfd_open
        - Branch String:   'winpr/libwinpr/thread/process.c:593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:594,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:595,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:584,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/process.c:592,16'
          Dst:             pidfd_open
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:172,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:174,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:174,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:174,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:175,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:174,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:174,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:175,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:174,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:175,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:177,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/../handle/handle.h:171,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    FindApplicationPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - application
      BBCount:         20
      ICount:          136
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - GetCombinedPath
        - GetEnvironmentVariableA
        - _strdup
        - strtok_s
        - winpr_PathFileExists
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:107,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:108,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
                - _strdup
            - BranchSide:      'winpr/libwinpr/thread/process.c:110,6'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
                - _strdup
        - Branch String:   'winpr/libwinpr/thread/process.c:110,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:111,18'
              BranchSideFuncs:
                - _strdup
            - BranchSide:      'winpr/libwinpr/thread/process.c:113,34'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:115,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:116,18'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:118,31'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:121,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:123,30'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:123,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:125,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:129,7'
              BranchSideFuncs:
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
        - Branch String:   'winpr/libwinpr/thread/process.c:132,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:134,30'
              BranchSideFuncs:
                - GetCombinedPath
                - winpr_PathFileExists
                - free
                - strtok_s
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:146,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:136,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:138,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:141,8'
              BranchSideFuncs:
                - free
                - strtok_s
                - free
                - GetCombinedPath
                - winpr_PathFileExists
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:111,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:113,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:116,10'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/thread/process.c:123,6'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/thread/process.c:130,9'
          Dst:             strtok_s
        - Src:             'winpr/libwinpr/thread/process.c:134,14'
          Dst:             GetCombinedPath
        - Src:             'winpr/libwinpr/thread/process.c:136,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/thread/process.c:143,10'
          Dst:             strtok_s
    - functionName:    TerminateProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 471
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hProcess
        - uExitCode
      BBCount:         11
      ICount:          60
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - kill
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:475,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:475,19'
              BranchSideFuncs:
                - kill
            - BranchSide:      'winpr/libwinpr/thread/process.c:476,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:475,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:476,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:478,11'
              BranchSideFuncs:
                - kill
        - Branch String:   'winpr/libwinpr/thread/process.c:478,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:479,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:481,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:478,6'
          Dst:             kill
    - 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:    GetCurrentProcessId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 467
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getpid
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:467,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:467,17'
              BranchSideFuncs:
                - getpid
            - BranchSide:      'winpr/libwinpr/thread/process.c:467,17'
              BranchSideFuncs:
                - getpid
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:467,17'
          Dst:             getpid
    - functionName:    getpid
      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:    _GetCurrentProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 462
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetExitCodeProcess
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 446
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hProcess
        - lpExitCode
      BBCount:         6
      ICount:          43
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:449,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:450,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:452,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:452,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:453,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/process.c:455,28'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CreateProcessWithTokenW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hToken
        - dwLogonFlags
        - lpApplicationName
        - lpCommandLine
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         1
      ICount:          31
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessWithTokenA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 426
      functionLinenumberEnd: 429
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hToken
        - dwLogonFlags
        - lpApplicationName
        - lpCommandLine
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         3
      ICount:          46
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateProcessExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:427,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        12
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hToken
        - dwLogonFlags
        - lpApplicationName
        - lpCommandLine
        - lpProcessAttributes
        - lpThreadAttributes
        - bInheritHandles
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         83
      ICount:          546
      EdgeCount:       111
      CyclomaticComplexity: 30
      functionsReached:
        - CommandLineToArgvA
        - CreateNoneHandle
        - CreateProcessHandle
        - EnvironmentBlockToEnvpA
        - FindApplicationPath
        - FreeEnvironmentStringsA
        - GetEnvironmentStrings
        - ProcessHandleCloseHandle
        - _exit
        - chdir
        - close
        - dup2
        - execve
        - fork
        - initgroups
        - pthread_sigmask
        - setgid
        - setuid
        - sigaction
        - sigemptyset
        - sigfillset
        - strlen
        - sysconf
        - winpr_Handle_getFd
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/process.c:177,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:178,30'
              BranchSideFuncs:
                - CommandLineToArgvA
                - GetEnvironmentStrings
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - EnvironmentBlockToEnvpA
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
                - EnvironmentBlockToEnvpA
            - BranchSide:      'winpr/libwinpr/thread/process.c:180,30'
              BranchSideFuncs:
                - CommandLineToArgvA
                - GetEnvironmentStrings
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - EnvironmentBlockToEnvpA
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
                - EnvironmentBlockToEnvpA
        - Branch String:   'winpr/libwinpr/thread/process.c:182,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:183,3'
              BranchSideFuncs:
                - GetEnvironmentStrings
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - EnvironmentBlockToEnvpA
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
                - EnvironmentBlockToEnvpA
            - BranchSide:      'winpr/libwinpr/thread/process.c:185,31'
              BranchSideFuncs:
                - GetEnvironmentStrings
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - EnvironmentBlockToEnvpA
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
                - EnvironmentBlockToEnvpA
        - Branch String:   'winpr/libwinpr/thread/process.c:187,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:189,34'
              BranchSideFuncs:
                - EnvironmentBlockToEnvpA
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
            - BranchSide:      'winpr/libwinpr/thread/process.c:193,26'
              BranchSideFuncs:
                - GetEnvironmentStrings
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - EnvironmentBlockToEnvpA
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
        - Branch String:   'winpr/libwinpr/thread/process.c:195,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:196,4'
              BranchSideFuncs:
                - EnvironmentBlockToEnvpA
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
            - BranchSide:      'winpr/libwinpr/thread/process.c:198,34'
              BranchSideFuncs:
                - EnvironmentBlockToEnvpA
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
        - Branch String:   'winpr/libwinpr/thread/process.c:201,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:202,3'
              BranchSideFuncs:
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
            - BranchSide:      'winpr/libwinpr/thread/process.c:204,33'
              BranchSideFuncs:
                - FindApplicationPath
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
        - Branch String:   'winpr/libwinpr/thread/process.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:207,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:210,2'
              BranchSideFuncs:
                - sigfillset
                - pthread_sigmask
                - fork
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
        - Branch String:   'winpr/libwinpr/thread/process.c:215,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:218,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:221,6'
              BranchSideFuncs:
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
        - Branch String:   'winpr/libwinpr/thread/process.c:221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:0,0'
              BranchSideFuncs:
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
            - BranchSide:      'winpr/libwinpr/thread/process.c:225,7'
              BranchSideFuncs:
                - sigemptyset
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
                - sigaction
        - Branch String:   'winpr/libwinpr/thread/process.c:234,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:235,14'
              BranchSideFuncs:
                - sigaction
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
            - BranchSide:      'winpr/libwinpr/thread/process.c:238,3'
              BranchSideFuncs:
                - sigfillset
                - pthread_sigmask
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - dup2
                - dup2
                - dup2
        - Branch String:   'winpr/libwinpr/thread/process.c:241,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:243,8'
              BranchSideFuncs:
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - dup2
                - dup2
                - dup2
            - BranchSide:      'winpr/libwinpr/thread/process.c:266,11'
              BranchSideFuncs:
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:246,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:247,10'
              BranchSideFuncs:
                - dup2
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - dup2
                - dup2
            - BranchSide:      'winpr/libwinpr/thread/process.c:249,35'
              BranchSideFuncs:
                - winpr_Handle_getFd
                - winpr_Handle_getFd
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - dup2
                - dup2
        - Branch String:   'winpr/libwinpr/thread/process.c:251,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:252,10'
              BranchSideFuncs:
                - dup2
                - winpr_Handle_getFd
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - dup2
            - BranchSide:      'winpr/libwinpr/thread/process.c:254,35'
              BranchSideFuncs:
                - winpr_Handle_getFd
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
                - dup2
        - Branch String:   'winpr/libwinpr/thread/process.c:256,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:257,10'
              BranchSideFuncs:
                - dup2
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
            - BranchSide:      'winpr/libwinpr/thread/process.c:258,3'
              BranchSideFuncs:
                - sysconf
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
                - close
        - Branch String:   'winpr/libwinpr/thread/process.c:269,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:270,10'
              BranchSideFuncs:
                - close
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
            - BranchSide:      'winpr/libwinpr/thread/process.c:274,7'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
        - Branch String:   'winpr/libwinpr/thread/process.c:274,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:276,8'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
                - setgid
                - initgroups
            - BranchSide:      'winpr/libwinpr/thread/process.c:298,7'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
        - Branch String:   'winpr/libwinpr/thread/process.c:276,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:278,28'
              BranchSideFuncs:
                - setgid
                - initgroups
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
            - BranchSide:      'winpr/libwinpr/thread/process.c:289,8'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
        - Branch String:   'winpr/libwinpr/thread/process.c:280,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:282,5'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
            - BranchSide:      'winpr/libwinpr/thread/process.c:285,17'
              BranchSideFuncs:
                - initgroups
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
                - setuid
        - Branch String:   'winpr/libwinpr/thread/process.c:289,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:291,28'
              BranchSideFuncs:
                - setuid
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
            - BranchSide:      'winpr/libwinpr/thread/process.c:295,3'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
        - Branch String:   'winpr/libwinpr/thread/process.c:292,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:293,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:294,4'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - strlen
                - chdir
        - Branch String:   'winpr/libwinpr/thread/process.c:298,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:298,36'
              BranchSideFuncs:
                - strlen
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
                - chdir
            - BranchSide:      'winpr/libwinpr/thread/process.c:305,14'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
        - Branch String:   'winpr/libwinpr/thread/process.c:298,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:300,19'
              BranchSideFuncs:
                - chdir
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
            - BranchSide:      'winpr/libwinpr/thread/process.c:305,14'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
        - Branch String:   'winpr/libwinpr/thread/process.c:301,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:302,5'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:303,3'
              BranchSideFuncs:
                - execve
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - _exit
        - Branch String:   'winpr/libwinpr/thread/process.c:305,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:308,4'
              BranchSideFuncs:
                - _exit
            - BranchSide:      'winpr/libwinpr/thread/process.c:310,2'
              BranchSideFuncs:
                - CreateProcessHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
                - CreateNoneHandle
                - ProcessHandleCloseHandle
        - Branch String:   'winpr/libwinpr/thread/process.c:318,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:320,3'
              BranchSideFuncs:
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:323,11'
              BranchSideFuncs:
                - CreateNoneHandle
                - ProcessHandleCloseHandle
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
        - Branch String:   'winpr/libwinpr/thread/process.c:325,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:327,28'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
            - BranchSide:      'winpr/libwinpr/thread/process.c:331,35'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
                - pthread_sigmask
        - Branch String:   'winpr/libwinpr/thread/process.c:339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:340,3'
              BranchSideFuncs:
                - pthread_sigmask
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
            - BranchSide:      'winpr/libwinpr/thread/process.c:342,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - FreeEnvironmentStringsA
        - Branch String:   'winpr/libwinpr/thread/process.c:345,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:346,26'
              BranchSideFuncs:
                - FreeEnvironmentStringsA
                - free
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:348,6'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/thread/process.c:348,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:350,7'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:361,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/process.c:352,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/process.c:354,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/thread/process.c:358,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:178,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:180,11'
          Dst:             CommandLineToArgvA
        - Src:             'winpr/libwinpr/thread/process.c:189,10'
          Dst:             EnvironmentBlockToEnvpA
        - Src:             'winpr/libwinpr/thread/process.c:193,26'
          Dst:             GetEnvironmentStrings
        - Src:             'winpr/libwinpr/thread/process.c:198,10'
          Dst:             EnvironmentBlockToEnvpA
        - Src:             'winpr/libwinpr/thread/process.c:204,13'
          Dst:             FindApplicationPath
        - Src:             'winpr/libwinpr/thread/process.c:210,2'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:211,20'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:213,8'
          Dst:             fork
        - Src:             'winpr/libwinpr/thread/process.c:232,3'
          Dst:             sigemptyset
        - Src:             'winpr/libwinpr/thread/process.c:235,4'
          Dst:             sigaction
        - Src:             'winpr/libwinpr/thread/process.c:238,3'
          Dst:             sigfillset
        - Src:             'winpr/libwinpr/thread/process.c:239,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:244,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:247,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:249,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:252,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:254,16'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/thread/process.c:257,5'
          Dst:             dup2
        - Src:             'winpr/libwinpr/thread/process.c:266,11'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/thread/process.c:270,4'
          Dst:             close
        - Src:             'winpr/libwinpr/thread/process.c:278,14'
          Dst:             setgid
        - Src:             'winpr/libwinpr/thread/process.c:285,6'
          Dst:             initgroups
        - Src:             'winpr/libwinpr/thread/process.c:291,14'
          Dst:             setuid
        - Src:             'winpr/libwinpr/thread/process.c:298,29'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/process.c:300,13'
          Dst:             chdir
        - Src:             'winpr/libwinpr/thread/process.c:305,7'
          Dst:             execve
        - Src:             'winpr/libwinpr/thread/process.c:308,4'
          Dst:             _exit
        - Src:             'winpr/libwinpr/thread/process.c:316,12'
          Dst:             CreateProcessHandle
        - Src:             'winpr/libwinpr/thread/process.c:323,11'
          Dst:             CreateNoneHandle
        - Src:             'winpr/libwinpr/thread/process.c:327,3'
          Dst:             ProcessHandleCloseHandle
        - Src:             'winpr/libwinpr/thread/process.c:340,3'
          Dst:             pthread_sigmask
        - Src:             'winpr/libwinpr/thread/process.c:346,3'
          Dst:             FreeEnvironmentStringsA
    - functionName:    sigfillset
      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_sigmask
      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:    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:    sigemptyset
      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:    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:    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:    sysconf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      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:    initgroups
      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:    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:    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:    execve
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      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:    CreateProcessWithLogonW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 419
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpUsername
        - lpDomain
        - lpPassword
        - dwLogonFlags
        - lpApplicationName
        - lpCommandLine
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessWithLogonA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 409
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpUsername
        - lpDomain
        - lpPassword
        - dwLogonFlags
        - lpApplicationName
        - lpCommandLine
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessAsUserW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 400
      functionLinenumberEnd: 401
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hToken
        - lpApplicationName
        - lpCommandLine
        - lpProcessAttributes
        - lpThreadAttributes
        - bInheritHandles
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         1
      ICount:          37
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessAsUserA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 392
      functionDepth:   0
      returnType:      int
      argCount:        11
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hToken
        - lpApplicationName
        - lpCommandLine
        - lpProcessAttributes
        - lpThreadAttributes
        - bInheritHandles
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         3
      ICount:          56
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateProcessExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:390,9'
          Dst:             CreateProcessExA
    - functionName:    CreateProcessW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 380
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpApplicationName
        - lpCommandLine
        - lpProcessAttributes
        - lpThreadAttributes
        - bInheritHandles
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         1
      ICount:          34
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateProcessA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/process.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      int
      argCount:        10
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpApplicationName
        - lpCommandLine
        - lpProcessAttributes
        - lpThreadAttributes
        - bInheritHandles
        - dwCreationFlags
        - lpEnvironment
        - lpCurrentDirectory
        - lpStartupInfo
        - lpProcessInformation
      BBCount:         3
      ICount:          52
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateProcessExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/process.c:370,9'
          Dst:             CreateProcessExA
    - functionName:    _getprotobyname
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1287
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getprotobyname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1286,10'
          Dst:             getprotobyname
    - functionName:    getprotobyname
      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:    _getprotobynumber
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1277
      functionLinenumberEnd: 1280
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - number
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getprotobynumber
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1279,10'
          Dst:             getprotobynumber
    - functionName:    getprotobynumber
      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:    _getservbyname
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1270
      functionLinenumberEnd: 1273
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - proto
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getservbyname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1272,9'
          Dst:             getservbyname
    - functionName:    getservbyname
      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:    _getservbyport
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1263
      functionLinenumberEnd: 1266
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - port
        - proto
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getservbyport
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1265,9'
          Dst:             getservbyport
    - functionName:    getservbyport
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _gethostname
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1256
      functionLinenumberEnd: 1259
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - name
        - namelen
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gethostname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1258,11'
          Dst:             gethostname
    - functionName:    gethostname
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _gethostbyname
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1249
      functionLinenumberEnd: 1252
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gethostbyname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1251,9'
          Dst:             gethostbyname
    - functionName:    gethostbyname
      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:    _gethostbyaddr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1242
      functionLinenumberEnd: 1245
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - addr
        - len
        - type
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - gethostbyaddr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1244,9'
          Dst:             gethostbyaddr
    - functionName:    gethostbyaddr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _shutdown
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1201
      functionLinenumberEnd: 1226
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - s
        - how
      BBCount:         11
      ICount:          72
      EdgeCount:       11
      CyclomaticComplexity: 2
      functionsReached:
        - shutdown
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1206,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1209,10'
              BranchSideFuncs:
                - shutdown
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1213,10'
              BranchSideFuncs:
                - shutdown
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1217,10'
              BranchSideFuncs:
                - shutdown
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1221,6'
              BranchSideFuncs:
                - shutdown
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1222,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1224,20'
              BranchSideFuncs:
                - shutdown
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1224,11'
          Dst:             shutdown
    - 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:    _setsockopt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1193
      functionLinenumberEnd: 1197
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - level
        - optname
        - optval
        - optlen
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - setsockopt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1196,11'
          Dst:             setsockopt
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _sendto
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1185
      functionLinenumberEnd: 1189
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - buf
        - len
        - flags
        - to
        - tolen
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sendto
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1188,16'
          Dst:             sendto
    - functionName:    sendto
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _send
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1176
      functionLinenumberEnd: 1181
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - s
        - buf
        - len
        - flags
      BBCount:         3
      ICount:          43
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - send
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1180,16'
          Dst:             send
    - 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:    _select
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1159
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - nfds
        - readfds
        - writefds
        - exceptfds
        - timeout
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - select
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1170,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1170,28'
              BranchSideFuncs:
                - __errno_location
                - select
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1170,2'
              BranchSideFuncs:
                - select
                - __errno_location
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1170,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1169,19'
              BranchSideFuncs:
                - select
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1172,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1169,12'
          Dst:             select
        - Src:             'winpr/libwinpr/winsock/winsock.c:1170,28'
          Dst:             __errno_location
    - functionName:    select
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _recvfrom
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1148
      functionLinenumberEnd: 1154
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - buf
        - len
        - flags
        - from
        - fromlen
      BBCount:         3
      ICount:          55
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - recvfrom
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1152,16'
          Dst:             recvfrom
    - functionName:    recvfrom
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - int
        - 'N/A'
        - size_t
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _recv
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1140
      functionLinenumberEnd: 1144
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - size_t
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - s
        - buf
        - len
        - flags
      BBCount:         3
      ICount:          40
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - recv
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1143,16'
          Dst:             recv
    - 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:    _ntohs
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1135
      functionLinenumberEnd: 1136
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - netshort
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohs
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1136,9'
          Dst:             ntohs
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _ntohl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1130
      functionLinenumberEnd: 1131
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - netlong
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ntohl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1131,9'
          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:    _listen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1122
      functionLinenumberEnd: 1126
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - s
        - backlog
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - listen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1125,11'
          Dst:             listen
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _inet_ntoa
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1117
      functionLinenumberEnd: 1118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - in
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_ntoa
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1118,9'
          Dst:             inet_ntoa
    - functionName:    inet_ntoa
      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:    _inet_addr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1112
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - cp
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - inet_addr
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1113,15'
          Dst:             inet_addr
    - functionName:    inet_addr
      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:    _htons
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1107
      functionLinenumberEnd: 1108
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - hostshort
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htons
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1108,9'
          Dst:             htons
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _htonl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1102
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - hostlong
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - htonl
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1103,9'
          Dst:             htonl
    - 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:    _getsockopt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1092
      functionLinenumberEnd: 1098
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - size_t
        - int
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - level
        - optname
        - optval
        - optlen
      BBCount:         3
      ICount:          49
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getsockopt
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1096,11'
          Dst:             getsockopt
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _getsockname
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1082
      functionLinenumberEnd: 1088
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - name
        - namelen
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getsockname
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1086,11'
          Dst:             getsockname
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _getpeername
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1072
      functionLinenumberEnd: 1078
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - name
        - namelen
      BBCount:         3
      ICount:          41
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getpeername
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1076,11'
          Dst:             getpeername
    - functionName:    getpeername
      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:    _connect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1035
      functionLinenumberEnd: 1044
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - name
        - namelen
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - connect
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1040,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1041,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1043,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1038,11'
          Dst:             connect
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    closesocket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1027
      functionLinenumberEnd: 1031
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - s
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - close
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1030,11'
          Dst:             close
    - functionName:    _bind
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1024
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - addr
        - namelen
      BBCount:         6
      ICount:          50
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - bind
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1020,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1021,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1023,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1018,11'
          Dst:             bind
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _accept
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1005
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - addr
        - addrlen
      BBCount:         3
      ICount:          42
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - accept
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1009,11'
          Dst:             accept
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WSAIoctl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 794
      functionLinenumberEnd: 1002
      functionDepth:   0
      returnType:      int
      argCount:        9
      argTypes:
        - size_t
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - dwIoControlCode
        - lpvInBuffer
        - cbInBuffer
        - lpvOutBuffer
        - cbOutBuffer
        - lpcbBytesReturned
        - lpOverlapped
        - lpCompletionRoutine
      BBCount:         62
      ICount:          495
      EdgeCount:       85
      CyclomaticComplexity: 25
      functionsReached:
        - WSASetLastError
        - getnameinfo
        - inet_pton
        - ioctl
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:814,50'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:815,8'
              BranchSideFuncs:
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:817,3'
              BranchSideFuncs:
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:815,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:815,25'
              BranchSideFuncs:
                - WSASetLastError
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:817,3'
              BranchSideFuncs:
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:815,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:815,41'
              BranchSideFuncs:
                - WSASetLastError
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:817,3'
              BranchSideFuncs:
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:814,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:817,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:821,12'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - WSASetLastError
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:918,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:920,3'
              BranchSideFuncs:
                - WSASetLastError
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:924,8'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:929,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:929,35'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:929,2'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:929,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:929,2'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:930,10'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:929,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:932,17'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1000,31'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:937,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:938,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:940,10'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:942,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:943,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:945,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:945,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:946,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:948,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:948,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:949,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:951,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:951,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:952,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:954,7'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:954,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:955,11'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:957,25'
              BranchSideFuncs:
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:959,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:960,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:962,8'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:962,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:962,50'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:965,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:962,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:963,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:965,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:969,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:970,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:972,8'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:972,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:972,50'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:975,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:972,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:973,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:975,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:979,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:980,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:982,8'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:982,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:982,50'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:985,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:982,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:983,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:985,16'
              BranchSideFuncs:
                - getnameinfo
                - inet_pton
                - ioctl
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
                - getnameinfo
                - inet_pton
                - ioctl
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:817,3'
          Dst:             WSASetLastError
        - Src:             'winpr/libwinpr/winsock/winsock.c:918,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:920,3'
          Dst:             WSASetLastError
        - Src:             'winpr/libwinpr/winsock/winsock.c:937,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:959,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:965,3'
          Dst:             getnameinfo
        - Src:             'winpr/libwinpr/winsock/winsock.c:967,3'
          Dst:             inet_pton
        - Src:             'winpr/libwinpr/winsock/winsock.c:969,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:975,3'
          Dst:             getnameinfo
        - Src:             'winpr/libwinpr/winsock/winsock.c:977,3'
          Dst:             inet_pton
        - Src:             'winpr/libwinpr/winsock/winsock.c:979,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/winsock/winsock.c:985,3'
          Dst:             getnameinfo
        - Src:             'winpr/libwinpr/winsock/winsock.c:987,3'
          Dst:             inet_pton
    - functionName:    WSASetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 319
      functionLinenumberEnd: 499
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - iError
      BBCount:         47
      ICount:          274
      EdgeCount:       93
      CyclomaticComplexity: 48
      functionsReached:
        - __errno_location
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:320,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:320,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:324,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:328,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:332,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:336,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:340,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:344,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:350,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:354,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:358,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:362,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:366,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:370,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:374,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:378,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:382,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:386,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:390,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:394,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:398,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:402,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:406,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:410,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:414,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:418,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:422,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:426,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:430,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:434,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:438,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:442,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:446,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:450,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:454,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:458,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:462,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:466,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:470,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:474,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:484,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:488,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:492,4'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:496,4'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:324,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:328,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:332,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:336,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:340,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:344,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:350,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:354,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:358,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:362,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:366,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:370,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:374,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:378,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:382,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:386,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:390,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:394,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:398,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:402,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:406,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:410,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:414,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:418,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:422,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:426,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:430,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:434,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:438,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:442,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:446,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:450,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:454,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:458,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:462,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:466,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:470,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:474,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:484,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:488,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:492,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/winsock/winsock.c:496,4'
          Dst:             __errno_location
    - functionName:    ioctl
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    15
      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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    inet_pton
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WSASocketW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 787
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - af
        - type
        - protocol
        - lpProtocolInfo
        - g
        - dwFlags
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WSASocketA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:788,9'
          Dst:             WSASocketA
    - functionName:    WSASocketA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 779
      functionLinenumberEnd: 782
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - int
        - int
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - af
        - type
        - protocol
        - lpProtocolInfo
        - g
        - dwFlags
      BBCount:         3
      ICount:          38
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _socket
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:781,6'
          Dst:             _socket
    - functionName:    _socket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1229
      functionLinenumberEnd: 1239
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - af
        - type
        - protocol
      BBCount:         6
      ICount:          51
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - socket
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1234,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1235,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1237,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1232,7'
          Dst:             socket
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WSAWaitForMultipleEvents
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 774
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - cEvents
        - lphEvents
        - fWaitAll
        - dwTimeout
        - fAlertable
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WaitForMultipleObjectsEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:774,9'
          Dst:             WaitForMultipleObjectsEx
    - functionName:    _ioctlsocket
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1047
      functionLinenumberEnd: 1069
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - cmd
        - argp
      BBCount:         14
      ICount:          82
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - fcntl64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1050,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1052,7'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1068,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1054,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1055,4'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1057,17'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1059,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1060,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1062,8'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:1062,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1063,10'
              BranchSideFuncs:
                - fcntl64
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:1065,10'
              BranchSideFuncs:
                - fcntl64
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:1057,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/winsock/winsock.c:1063,4'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/winsock/winsock.c:1065,4'
          Dst:             fcntl64
    - functionName:    WSAEventSelect
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 749
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - s
        - hEventObject
        - lNetworkEvents
      BBCount:         16
      ICount:          97
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - SetEventFileDescriptor
        - _ioctlsocket
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:753,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:754,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:756,6'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:756,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:757,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:759,6'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:759,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:760,8'
              BranchSideFuncs:
                - SetEventFileDescriptor
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:762,6'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:762,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:763,8'
              BranchSideFuncs:
                - SetEventFileDescriptor
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:765,29'
              BranchSideFuncs:
                - SetEventFileDescriptor
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:765,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:766,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:768,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:753,6'
          Dst:             _ioctlsocket
        - Src:             'winpr/libwinpr/winsock/winsock.c:765,6'
          Dst:             SetEventFileDescriptor
    - functionName:    WSACloseEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 738
      functionLinenumberEnd: 745
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CloseHandle
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:742,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:742,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:743,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:740,11'
          Dst:             CloseHandle
        - Src:             'winpr/libwinpr/winsock/winsock.c:743,3'
          Dst:             SetLastError
    - functionName:    WSAResetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 731
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WSASetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 726
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetEvent
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:727,9'
          Dst:             SetEvent
    - functionName:    WSACreateEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 722
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateEventA
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:722,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:722,9'
              BranchSideFuncs:
                - CreateEventA
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:722,9'
              BranchSideFuncs:
                - CreateEventA
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:722,9'
          Dst:             CreateEventA
    - functionName:    WSAGetLastError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 502
      functionLinenumberEnd: 717
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         48
      ICount:          239
      EdgeCount:       95
      CyclomaticComplexity: 49
      functionsReached:
        - __errno_location
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:503,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:503,6'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:503,6'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:505,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:505,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:509,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:513,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:517,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:521,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:525,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:529,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:535,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:539,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:543,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:547,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:551,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:555,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:559,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:563,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:567,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:571,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:575,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:579,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:583,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:587,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:591,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:595,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:599,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:603,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:607,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:611,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:615,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:619,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:623,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:627,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:631,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:635,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:639,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:643,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:647,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:651,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:655,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:659,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:669,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:673,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:677,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:681,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:693,11'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:505,10'
          Dst:             __errno_location
    - functionName:    WSACleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 314
      functionLinenumberEnd: 315
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WSAStartup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/winsock/winsock.c'
      linkageType:     InternalLinkage
      functionLinenumber: 304
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - short
        - 'N/A'
      constantsTouched: []
      argNames:
        - wVersionRequired
        - lpWSAData
      BBCount:         6
      ICount:          38
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/winsock/winsock.c:305,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:305,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/winsock/winsock.c:305,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/winsock/winsock.c:305,2'
          Dst:             __assert_fail
    - functionName:    ConvertMszUtf8NToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - len
        - pSize
      BBCount:         19
      ICount:          113
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszUtf8NToWChar
        - __assert_fail
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:640,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:641,4'
              BranchSideFuncs:
                - calloc
                - ConvertMszUtf8NToWChar
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:642,6'
              BranchSideFuncs:
                - calloc
                - ConvertMszUtf8NToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:642,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:643,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:644,23'
              BranchSideFuncs:
                - calloc
                - ConvertMszUtf8NToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:645,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:646,3'
              BranchSideFuncs:
                - ConvertMszUtf8NToWChar
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:647,45'
              BranchSideFuncs:
                - ConvertMszUtf8NToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:648,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:650,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:653,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/unicode.c:653,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:653,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:654,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:654,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:655,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:656,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:639,21'
          Dst:             ConvertMszUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:644,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:647,22'
          Dst:             ConvertMszUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:653,2'
          Dst:             __assert_fail
    - functionName:    ConvertMszUtf8NToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 499
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - len
        - wstr
        - wlen
      BBCount:         22
      ICount:          115
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - MultiByteToWideChar
        - SetLastError
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:500,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:501,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:503,2'
              BranchSideFuncs:
                - __assert_fail
                - MultiByteToWideChar
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:503,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:503,2'
              BranchSideFuncs:
                - MultiByteToWideChar
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:505,6'
              BranchSideFuncs:
                - MultiByteToWideChar
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:505,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:507,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:511,20'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:511,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:511,20'
              BranchSideFuncs:
                - MultiByteToWideChar
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:511,20'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:513,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:513,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:514,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:513,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:513,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:516,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:513,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:514,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:516,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:503,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode.c:507,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:512,17'
          Dst:             MultiByteToWideChar
    - functionName:    MultiByteToWideChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 162
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - CodePage
        - dwFlags
        - lpMultiByteStr
        - cbMultiByte
        - lpWideCharStr
        - cchWideChar
      BBCount:         3
      ICount:          36
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - int_MultiByteToWideChar
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:163,9'
          Dst:             int_MultiByteToWideChar
    - functionName:    ConvertUtf8NToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 614
      functionLinenumberEnd: 634
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - len
        - pSize
      BBCount:         19
      ICount:          113
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8NToWChar
        - __assert_fail
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:617,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:618,4'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8NToWChar
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:619,6'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8NToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:619,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:620,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:621,23'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8NToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:622,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:623,3'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:624,42'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:625,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:627,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:630,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/unicode.c:630,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:630,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:631,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:631,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:632,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:633,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:616,21'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:621,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:624,22'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:630,2'
          Dst:             __assert_fail
    - functionName:    ConvertUtf8NToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 461
      functionLinenumberEnd: 496
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - len
        - wstr
        - wlen
      BBCount:         41
      ICount:          217
      EdgeCount:       54
      CyclomaticComplexity: 15
      functionsReached:
        - MultiByteToWideChar
        - SetLastError
        - __assert_fail
        - strnlen
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:464,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:465,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:467,2'
              BranchSideFuncs:
                - __assert_fail
                - MultiByteToWideChar
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:467,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:467,2'
              BranchSideFuncs:
                - MultiByteToWideChar
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:469,6'
              BranchSideFuncs:
                - MultiByteToWideChar
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:469,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:471,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:474,6'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:474,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:476,20'
              BranchSideFuncs:
                - MultiByteToWideChar
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:480,20'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:480,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:480,20'
              BranchSideFuncs:
                - MultiByteToWideChar
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:480,20'
              BranchSideFuncs:
                - MultiByteToWideChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:482,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:482,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:483,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:482,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:482,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:484,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:482,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:483,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:484,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:484,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:486,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:490,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:486,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:486,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:488,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:486,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:487,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:488,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:492,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:492,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:494,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:492,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:493,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:494,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:462,16'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/unicode.c:467,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode.c:471,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:481,17'
          Dst:             MultiByteToWideChar
    - functionName:    ConvertUtf8ToWCharAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 591
      functionLinenumberEnd: 611
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - pSize
      BBCount:         19
      ICount:          108
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8ToWChar
        - __assert_fail
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:594,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:595,4'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8ToWChar
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:596,6'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8ToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:596,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:597,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:598,23'
              BranchSideFuncs:
                - calloc
                - ConvertUtf8ToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:599,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:600,3'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:601,41'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:602,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:604,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:607,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/unicode.c:607,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:607,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:608,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:608,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:609,20'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:610,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:593,21'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:598,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:601,22'
          Dst:             ConvertUtf8ToWChar
        - Src:             'winpr/libwinpr/crt/unicode.c:607,2'
          Dst:             __assert_fail
    - functionName:    ConvertUtf8ToWChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 448
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - wstr
        - wlen
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8NToWChar
        - strlen
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:449,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:451,7'
              BranchSideFuncs:
                - strlen
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:456,15'
              BranchSideFuncs:
                - strlen
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/crt/unicode.c:451,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:451,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:453,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:451,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:452,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:453,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:456,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode.c:457,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    ConvertMszWCharNToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 567
      functionLinenumberEnd: 588
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - pUtfCharLength
      BBCount:         19
      ICount:          113
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertMszWCharNToUtf8
        - __assert_fail
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:571,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:572,4'
              BranchSideFuncs:
                - calloc
                - ConvertMszWCharNToUtf8
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:573,6'
              BranchSideFuncs:
                - calloc
                - ConvertMszWCharNToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:573,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:574,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:575,23'
              BranchSideFuncs:
                - calloc
                - ConvertMszWCharNToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:577,3'
              BranchSideFuncs:
                - ConvertMszWCharNToUtf8
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:578,45'
              BranchSideFuncs:
                - ConvertMszWCharNToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:579,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:581,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:584,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/unicode.c:584,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:584,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:585,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:585,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:586,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:587,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:569,21'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:575,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:578,22'
          Dst:             ConvertMszWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:584,2'
          Dst:             __assert_fail
    - functionName:    ConvertMszWCharNToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 445
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - str
        - len
      BBCount:         22
      ICount:          115
      EdgeCount:       28
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WideCharToMultiByte
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:428,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:429,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:431,2'
              BranchSideFuncs:
                - __assert_fail
                - WideCharToMultiByte
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:431,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:431,2'
              BranchSideFuncs:
                - WideCharToMultiByte
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:433,6'
              BranchSideFuncs:
                - WideCharToMultiByte
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:433,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:435,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:439,20'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:439,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:439,20'
              BranchSideFuncs:
                - WideCharToMultiByte
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:439,20'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:441,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:441,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:442,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:441,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:441,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:444,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:441,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:442,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:444,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:431,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode.c:435,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:440,17'
          Dst:             WideCharToMultiByte
    - functionName:    WideCharToMultiByte
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 213
      functionLinenumberEnd: 215
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - CodePage
        - dwFlags
        - lpWideCharStr
        - cchWideChar
        - lpMultiByteStr
        - cbMultiByte
        - lpDefaultChar
        - lpUsedDefaultChar
      BBCount:         3
      ICount:          44
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - int_WideCharToMultiByte
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:214,9'
          Dst:             int_WideCharToMultiByte
    - functionName:    ConvertWCharNToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 543
      functionLinenumberEnd: 564
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - pUtfCharLength
      BBCount:         19
      ICount:          113
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharNToUtf8
        - __assert_fail
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:547,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:548,4'
              BranchSideFuncs:
                - calloc
                - ConvertWCharNToUtf8
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:549,6'
              BranchSideFuncs:
                - calloc
                - ConvertWCharNToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:549,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:550,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:551,23'
              BranchSideFuncs:
                - calloc
                - ConvertWCharNToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:552,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:553,3'
              BranchSideFuncs:
                - ConvertWCharNToUtf8
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:554,42'
              BranchSideFuncs:
                - ConvertWCharNToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:555,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:557,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:560,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/unicode.c:560,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:560,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:561,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:561,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:562,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:563,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:545,21'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:551,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:554,22'
          Dst:             ConvertWCharNToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:560,2'
          Dst:             __assert_fail
    - functionName:    ConvertWCharNToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 389
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - wlen
        - str
        - len
      BBCount:         42
      ICount:          217
      EdgeCount:       55
      CyclomaticComplexity: 15
      functionsReached:
        - SetLastError
        - WideCharToMultiByte
        - __assert_fail
        - _wcsnlen
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:391,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:392,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:394,2'
              BranchSideFuncs:
                - __assert_fail
                - _wcsnlen
                - WideCharToMultiByte
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:394,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:394,2'
              BranchSideFuncs:
                - _wcsnlen
                - WideCharToMultiByte
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:395,26'
              BranchSideFuncs:
                - _wcsnlen
                - WideCharToMultiByte
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode.c:397,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:399,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:403,6'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:403,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:405,20'
              BranchSideFuncs:
                - WideCharToMultiByte
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:409,38'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:409,61'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:409,61'
              BranchSideFuncs:
                - WideCharToMultiByte
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:409,61'
              BranchSideFuncs:
                - WideCharToMultiByte
        - Branch String:   'winpr/libwinpr/crt/unicode.c:410,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:410,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:411,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:410,30'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:410,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:412,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:410,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:411,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:412,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:412,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:414,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:418,19'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:414,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:414,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:416,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:414,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:415,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:416,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:420,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:420,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:422,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:420,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:421,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:422,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:394,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode.c:395,17'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/crt/unicode.c:399,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/crt/unicode.c:409,6'
          Dst:             WideCharToMultiByte
    - functionName:    ConvertWCharToUtf8Alloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 520
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - wstr
        - pUtfCharLength
      BBCount:         19
      ICount:          108
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharToUtf8
        - __assert_fail
        - calloc
      functionUses:    16
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:523,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:524,4'
              BranchSideFuncs:
                - calloc
                - ConvertWCharToUtf8
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:525,6'
              BranchSideFuncs:
                - calloc
                - ConvertWCharToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:525,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:526,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:527,23'
              BranchSideFuncs:
                - calloc
                - ConvertWCharToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:528,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:529,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8
                - __assert_fail
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:530,41'
              BranchSideFuncs:
                - ConvertWCharToUtf8
                - __assert_fail
                - free
        - Branch String:   'winpr/libwinpr/crt/unicode.c:531,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:533,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:536,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/unicode.c:536,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:536,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:537,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:537,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:538,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:539,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:522,21'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:527,8'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/unicode.c:530,22'
          Dst:             ConvertWCharToUtf8
        - Src:             'winpr/libwinpr/crt/unicode.c:536,2'
          Dst:             __assert_fail
    - functionName:    ConvertWCharToUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 376
      functionLinenumberEnd: 386
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - str
        - len
      BBCount:         11
      ICount:          65
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertWCharNToUtf8
        - _wcslen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:377,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:379,7'
              BranchSideFuncs:
                - _wcslen
                - ConvertWCharNToUtf8
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:384,15'
              BranchSideFuncs:
                - _wcslen
                - ConvertWCharNToUtf8
        - Branch String:   'winpr/libwinpr/crt/unicode.c:379,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:379,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:381,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode.c:379,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:380,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:381,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:384,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode.c:385,9'
          Dst:             ConvertWCharNToUtf8
    - functionName:    _byteswap_ushort
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/crt.h'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 113
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - _val
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ByteSwapUnicode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode.c'
      linkageType:     InternalLinkage
      functionLinenumber: 367
      functionLinenumberEnd: 372
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - wstr
        - length
      BBCount:         13
      ICount:          68
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - _byteswap_ushort
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode.c:368,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:368,2'
              BranchSideFuncs:
                - _byteswap_ushort
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:368,2'
              BranchSideFuncs:
                - __assert_fail
                - _byteswap_ushort
        - Branch String:   'winpr/libwinpr/crt/unicode.c:368,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:368,2'
              BranchSideFuncs:
                - _byteswap_ushort
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:370,14'
              BranchSideFuncs:
                - _byteswap_ushort
        - Branch String:   'winpr/libwinpr/crt/unicode.c:370,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:371,30'
              BranchSideFuncs:
                - _byteswap_ushort
            - BranchSide:      'winpr/libwinpr/crt/unicode.c:372,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode.c:368,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode.c:371,13'
          Dst:             _byteswap_ushort
    - functionName:    hex2bin
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 103
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - what
      BBCount:         7
      ICount:          49
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:97,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:98,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:99,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:99,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:100,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:102,8'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    InitializeConstWCharFromUtf8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 827
      functionLinenumberEnd: 831
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - buffer
        - len
      BBCount:         12
      ICount:          58
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertUtf8ToWChar
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:828,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:828,2'
              BranchSideFuncs:
                - __assert_fail
                - ConvertUtf8ToWChar
            - BranchSide:      'winpr/libwinpr/crt/string.c:829,2'
              BranchSideFuncs:
                - __assert_fail
                - ConvertUtf8ToWChar
        - Branch String:   'winpr/libwinpr/crt/string.c:829,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:829,2'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
            - BranchSide:      'winpr/libwinpr/crt/string.c:829,2'
              BranchSideFuncs:
                - __assert_fail
                - ConvertUtf8ToWChar
        - Branch String:   'winpr/libwinpr/crt/string.c:829,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:829,2'
              BranchSideFuncs:
                - ConvertUtf8ToWChar
            - BranchSide:      'winpr/libwinpr/crt/string.c:829,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:828,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:829,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:830,2'
          Dst:             ConvertUtf8ToWChar
    - functionName:    GetLine
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 810
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lineptr
        - size
        - stream
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - getline
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:810,9'
          Dst:             getline
    - functionName:    getline
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    StrSep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 756
      functionLinenumberEnd: 769
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - stringp
        - delim
      BBCount:         9
      ICount:          61
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - strpbrk
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:759,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:759,32'
              BranchSideFuncs:
                - strpbrk
            - BranchSide:      'winpr/libwinpr/crt/string.c:759,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:761,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:762,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:765,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:759,24'
          Dst:             strpbrk
    - functionName:    strpbrk
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ConvertLineEndingToCRLF
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 701
      functionLinenumberEnd: 753
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - size
      BBCount:         39
      ICount:          237
      EdgeCount:       44
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:702,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:702,2'
              BranchSideFuncs:
                - __assert_fail
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:703,20'
              BranchSideFuncs:
                - __assert_fail
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:704,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:704,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:704,2'
              BranchSideFuncs:
                - __assert_fail
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:704,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:704,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:706,3'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:707,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:708,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:710,9'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:711,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:713,12'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:724,21'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:714,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:718,15'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:718,15'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/crt/string.c:721,5'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/crt/string.c:725,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:726,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:728,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:729,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:731,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:751,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:732,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:735,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:740,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:747,18'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:740,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:740,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:745,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:740,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:742,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:745,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:702,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:704,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:724,14'
          Dst:             calloc
    - functionName:    ConvertLineEndingToLF
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 678
      functionLinenumberEnd: 697
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - size
      BBCount:         21
      ICount:          124
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:681,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:681,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:681,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/string.c:681,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:681,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:682,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:682,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:684,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:697,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:685,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:688,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:693,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:689,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:689,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:691,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:689,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:690,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:691,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:681,2'
          Dst:             __assert_fail
    - functionName:    IsCharLowerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 668
      functionLinenumberEnd: 673
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ch
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:669,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:669,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:672,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:669,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:670,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:672,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharLowerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 665
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ch
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:661,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:661,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:664,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:661,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:662,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:664,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharUpperW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 652
      functionLinenumberEnd: 657
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ch
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:653,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:653,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:656,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:653,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:654,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:656,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharUpperA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 644
      functionLinenumberEnd: 649
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ch
      BBCount:         7
      ICount:          34
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:645,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:645,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:648,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:645,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:646,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:648,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaNumericW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 635
      functionLinenumberEnd: 641
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ch
      BBCount:         18
      ICount:          79
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:636,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:636,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:636,42'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:636,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:636,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:638,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:636,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:636,58'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:637,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:636,71'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:637,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:638,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:637,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:637,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:640,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:636,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:638,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:640,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaNumericA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 626
      functionLinenumberEnd: 632
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ch
      BBCount:         18
      ICount:          79
      EdgeCount:       23
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:627,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:627,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:627,40'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:627,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:627,40'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:629,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:627,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:627,55'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:628,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:627,67'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:628,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:629,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:628,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:628,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:631,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:627,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:629,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:631,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 618
      functionLinenumberEnd: 623
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - short
      constantsTouched: []
      argNames:
        - ch
      BBCount:         13
      ICount:          57
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:619,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:619,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:619,42'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:619,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:619,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:620,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:619,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:619,58'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:622,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:619,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:620,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:622,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    IsCharAlphaA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 615
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - char
      constantsTouched: []
      argNames:
        - ch
      BBCount:         13
      ICount:          57
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:611,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:611,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:611,40'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:611,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:611,40'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:612,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:611,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:611,55'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:614,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:611,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:612,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:614,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharLowerBuffA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 582
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpsz
        - cchLength
      BBCount:         13
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:583,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:584,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:586,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:586,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:588,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:592,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:588,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:588,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:590,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:588,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:589,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:590,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharLowerBuffW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpsz
        - cchLength
      BBCount:         9
      ICount:          99
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:599,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:601,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:606,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharLowerW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpsz
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - _wcslen
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:577,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:577,2'
          Dst:             CharLowerBuffW
    - functionName:    _wcslen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 319
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
      BBCount:         9
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    50
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:314,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:314,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:316,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:316,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:317,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:319,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:314,2'
          Dst:             __assert_fail
    - functionName:    CharLowerA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 544
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpsz
      BBCount:         24
      ICount:          145
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:547,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:548,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:550,18'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/crt/string.c:552,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:553,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:555,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:555,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:557,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:566,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:559,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:559,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:562,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:559,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:560,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:562,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:566,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:568,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:572,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:568,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:568,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:570,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:568,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:569,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:570,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:550,11'
          Dst:             strlen
    - functionName:    CharUpperBuffW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 530
      functionLinenumberEnd: 540
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpsz
        - cchLength
      BBCount:         9
      ICount:          99
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:533,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:535,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:540,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharUpperBuffA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 527
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpsz
        - cchLength
      BBCount:         13
      ICount:          88
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:517,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:518,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:520,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:520,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:522,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:526,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:522,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:522,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:524,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:522,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:523,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:524,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CharUpperW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 513
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpsz
      BBCount:         24
      ICount:          145
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:487,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:488,3'
              BranchSideFuncs:
                - _wcslen
            - BranchSide:      'winpr/libwinpr/crt/string.c:490,19'
              BranchSideFuncs:
                - _wcslen
        - Branch String:   'winpr/libwinpr/crt/string.c:492,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:493,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:495,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:495,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:497,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:506,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:499,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:499,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:502,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:499,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:500,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:502,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:506,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:508,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:512,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:508,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:508,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:510,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:508,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:509,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:510,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:490,11'
          Dst:             _wcslen
    - functionName:    CharUpperA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 452
      functionLinenumberEnd: 481
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpsz
      BBCount:         24
      ICount:          145
      EdgeCount:       32
      CyclomaticComplexity: 10
      functionsReached:
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:455,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:456,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:458,18'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/crt/string.c:460,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:461,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:463,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:463,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:465,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:474,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:467,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:467,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:470,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:467,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:468,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:470,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:474,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:476,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:480,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:476,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:476,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:478,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:476,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:477,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:478,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:458,11'
          Dst:             strlen
    - functionName:    wcstok_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 407
      functionLinenumberEnd: 439
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - strToken
        - strDelimit
        - context
      BBCount:         24
      ICount:          148
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - _wcschr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:411,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:412,15'
              BranchSideFuncs:
                - _wcschr
                - _wcschr
            - BranchSide:      'winpr/libwinpr/crt/string.c:414,11'
              BranchSideFuncs:
                - _wcschr
                - _wcschr
        - Branch String:   'winpr/libwinpr/crt/string.c:416,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:416,30'
              BranchSideFuncs:
                - _wcschr
                - _wcschr
            - BranchSide:      'winpr/libwinpr/crt/string.c:416,2'
              BranchSideFuncs:
                - _wcschr
                - _wcschr
        - Branch String:   'winpr/libwinpr/crt/string.c:416,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:418,11'
              BranchSideFuncs:
                - _wcschr
                - _wcschr
            - BranchSide:      'winpr/libwinpr/crt/string.c:422,8'
              BranchSideFuncs:
                - _wcschr
        - Branch String:   'winpr/libwinpr/crt/string.c:422,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:423,3'
              BranchSideFuncs:
                - _wcschr
            - BranchSide:      'winpr/libwinpr/crt/string.c:425,22'
              BranchSideFuncs:
                - _wcschr
        - Branch String:   'winpr/libwinpr/crt/string.c:428,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:428,32'
              BranchSideFuncs:
                - _wcschr
            - BranchSide:      'winpr/libwinpr/crt/string.c:428,2'
              BranchSideFuncs:
                - _wcschr
        - Branch String:   'winpr/libwinpr/crt/string.c:428,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:430,11'
              BranchSideFuncs:
                - _wcschr
            - BranchSide:      'winpr/libwinpr/crt/string.c:434,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:434,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:435,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:437,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:416,22'
          Dst:             _wcschr
        - Src:             'winpr/libwinpr/crt/string.c:428,24'
          Dst:             _wcschr
    - functionName:    _wcschr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 361
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - str
        - value
      BBCount:         10
      ICount:          67
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:369,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:369,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:369,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:369,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:370,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:372,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:372,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:372,27'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:372,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    strtok_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 403
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - strToken
        - strDelimit
        - context
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strtok_r
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:403,9'
          Dst:             strtok_r
    - functionName:    strtok_r
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _wcsrchr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 379
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - str
        - c
      BBCount:         11
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:387,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:388,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:390,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:390,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:392,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:397,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:393,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:394,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:395,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    _wcsstr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 341
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - str
        - strSearch
      BBCount:         17
      ICount:          85
      EdgeCount:       20
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - _wcslen
        - _wcsncmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:342,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:342,2'
              BranchSideFuncs:
                - __assert_fail
                - _wcslen
                - _wcsncmp
            - BranchSide:      'winpr/libwinpr/crt/string.c:343,2'
              BranchSideFuncs:
                - __assert_fail
                - _wcslen
                - _wcsncmp
        - Branch String:   'winpr/libwinpr/crt/string.c:343,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:343,2'
              BranchSideFuncs:
                - _wcslen
                - _wcsncmp
            - BranchSide:      'winpr/libwinpr/crt/string.c:345,6'
              BranchSideFuncs:
                - _wcslen
                - _wcsncmp
        - Branch String:   'winpr/libwinpr/crt/string.c:345,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:346,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:348,35'
              BranchSideFuncs:
                - _wcslen
                - _wcsncmp
        - Branch String:   'winpr/libwinpr/crt/string.c:349,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:351,16'
              BranchSideFuncs:
                - _wcsncmp
            - BranchSide:      'winpr/libwinpr/crt/string.c:355,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:351,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:352,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:353,6'
              BranchSideFuncs:
                - _wcsncmp
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:342,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:343,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:348,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:351,7'
          Dst:             _wcsncmp
    - functionName:    _wcsncmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 306
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - string1
        - string2
        - count
      BBCount:         22
      ICount:          119
      EdgeCount:       26
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:292,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:292,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/crt/string.c:293,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/string.c:293,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:293,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:295,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:295,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:297,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:305,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:300,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:301,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:302,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:302,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:302,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:303,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:292,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:293,2'
          Dst:             __assert_fail
    - functionName:    _wcscmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - string1
        - string2
      BBCount:         19
      ICount:          99
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:275,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:275,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/crt/string.c:276,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/string.c:276,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:276,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:278,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:283,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:284,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:285,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:285,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:285,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:286,16'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:275,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:276,2'
          Dst:             __assert_fail
    - functionName:    _strnicmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 267
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - string1
        - string2
        - count
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strncasecmp
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:268,9'
          Dst:             strncasecmp
    - functionName:    strncasecmp
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _stricmp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 262
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - string1
        - string2
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - strcasecmp
      functionUses:    17
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:263,9'
          Dst:             strcasecmp
    - functionName:    strcasecmp
      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:    _wcsnlen
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 325
      functionLinenumberEnd: 336
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - max
      BBCount:         13
      ICount:          65
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:326,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:326,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:328,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:329,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:331,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:335,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:331,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:332,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:333,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:326,2'
          Dst:             __assert_fail
    - functionName:    _wcsncat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 249
      functionLinenumberEnd: 258
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dst
        - src
        - sz
      BBCount:         16
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - _wcslen
        - _wcsnlen
      functionUses:    39
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:250,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:250,2'
              BranchSideFuncs:
                - __assert_fail
                - _wcslen
                - _wcsnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:251,2'
              BranchSideFuncs:
                - __assert_fail
                - _wcslen
                - _wcsnlen
        - Branch String:   'winpr/libwinpr/crt/string.c:251,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:251,2'
              BranchSideFuncs:
                - _wcslen
                - _wcsnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:251,2'
              BranchSideFuncs:
                - __assert_fail
                - _wcslen
                - _wcsnlen
        - Branch String:   'winpr/libwinpr/crt/string.c:251,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:251,2'
              BranchSideFuncs:
                - _wcslen
                - _wcsnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:253,30'
              BranchSideFuncs:
                - _wcslen
                - _wcsnlen
        - Branch String:   'winpr/libwinpr/crt/string.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:256,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:257,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:250,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:251,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/string.c:253,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:254,22'
          Dst:             _wcsnlen
    - functionName:    _wcsdup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 232
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - strSource
      BBCount:         24
      ICount:          99
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - _wcslen
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:233,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:234,3'
              BranchSideFuncs:
                - _wcslen
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:236,23'
              BranchSideFuncs:
                - _wcslen
                - calloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/string.c:239,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:240,10'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:242,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/string.c:242,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:243,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:245,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:243,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:243,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:243,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/string.c:243,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:243,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:243,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:236,15'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/string.c:237,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:243,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crt/string.c:243,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crt/string.c:243,3'
          Dst:             WLog_PrintMessage
    - functionName:    _strdup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 229
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - strSource
      BBCount:         21
      ICount:          77
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - strdup
      functionUses:    33
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:220,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:221,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:223,32'
              BranchSideFuncs:
                - strdup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/string.c:225,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:226,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:228,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:226,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:226,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:226,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/string.c:226,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:226,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/string.c:226,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:223,25'
          Dst:             strdup
        - Src:             'winpr/libwinpr/crt/string.c:226,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crt/string.c:226,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crt/string.c:226,3'
          Dst:             WLog_PrintMessage
    - functionName:    strdup
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_vasprintf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 190
      functionLinenumberEnd: 214
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - slen
        - templ
        - oap
      BBCount:         11
      ICount:          103
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - calloc
        - vsnprintf
        - vsprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:199,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:200,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:202,29'
              BranchSideFuncs:
                - calloc
                - vsprintf
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/string.c:203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:204,3'
              BranchSideFuncs:
                - vsprintf
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/crt/string.c:206,2'
              BranchSideFuncs:
                - vsprintf
                - __assert_fail
        - Branch String:   'winpr/libwinpr/crt/string.c:210,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:210,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:211,7'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:197,21'
          Dst:             vsnprintf
        - Src:             'winpr/libwinpr/crt/string.c:202,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:207,19'
          Dst:             vsprintf
        - Src:             'winpr/libwinpr/crt/string.c:210,2'
          Dst:             __assert_fail
    - functionName:    vsprintf
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_asprintf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 179
      functionLinenumberEnd: 185
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - slen
        - templ
      BBCount:         3
      ICount:          35
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_vasprintf
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:183,11'
          Dst:             winpr_vasprintf
    - functionName:    winpr_str_append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 175
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - what
        - buffer
        - size
        - separator
      BBCount:         17
      ICount:          116
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - strncat
        - strnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:164,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:164,45'
              BranchSideFuncs:
                - strnlen
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:164,15'
              BranchSideFuncs:
                - strncat
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:165,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:165,34'
              BranchSideFuncs:
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:165,15'
              BranchSideFuncs:
                - strncat
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:167,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:168,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:170,7'
              BranchSideFuncs:
                - strncat
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:170,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:170,21'
              BranchSideFuncs:
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:173,10'
              BranchSideFuncs:
                - strncat
        - Branch String:   'winpr/libwinpr/crt/string.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:171,11'
              BranchSideFuncs:
                - strncat
                - strncat
            - BranchSide:      'winpr/libwinpr/crt/string.c:173,10'
              BranchSideFuncs:
                - strncat
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:162,22'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:163,21'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:164,37'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:171,3'
          Dst:             strncat
        - Src:             'winpr/libwinpr/crt/string.c:173,2'
          Dst:             strncat
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    escape
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - dst
        - what
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:134,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:136,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/string.c:140,10'
              BranchSideFuncs:
                - sprintf
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:140,2'
          Dst:             sprintf
    - functionName:    winpr_str_url_encode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 157
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - len
      BBCount:         10
      ICount:          73
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - escape
        - strnlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:147,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:148,3'
              BranchSideFuncs:
                - strnlen
                - escape
            - BranchSide:      'winpr/libwinpr/crt/string.c:150,14'
              BranchSideFuncs:
                - strnlen
                - escape
        - Branch String:   'winpr/libwinpr/crt/string.c:151,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:153,20'
              BranchSideFuncs:
                - escape
                - strnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:156,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:146,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:151,25'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:154,9'
          Dst:             escape
    - functionName:    unescape
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 115
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - what
        - px
      BBCount:         11
      ICount:          91
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - __ctype_b_loc
        - hex2bin
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:108,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:108,25'
              BranchSideFuncs:
                - __ctype_b_loc
                - __ctype_b_loc
                - hex2bin
                - hex2bin
            - BranchSide:      'winpr/libwinpr/crt/string.c:114,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:108,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:108,46'
              BranchSideFuncs:
                - __ctype_b_loc
                - hex2bin
                - hex2bin
            - BranchSide:      'winpr/libwinpr/crt/string.c:114,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/string.c:108,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:110,4'
              BranchSideFuncs:
                - hex2bin
                - hex2bin
            - BranchSide:      'winpr/libwinpr/crt/string.c:114,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:108,25'
          Dst:             __ctype_b_loc
        - Src:             'winpr/libwinpr/crt/string.c:108,46'
          Dst:             __ctype_b_loc
        - Src:             'winpr/libwinpr/crt/string.c:111,15'
          Dst:             hex2bin
        - Src:             'winpr/libwinpr/crt/string.c:111,34'
          Dst:             hex2bin
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_str_url_decode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/string.c'
      linkageType:     InternalLinkage
      functionLinenumber: 118
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - str
        - len
      BBCount:         10
      ICount:          75
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - calloc
        - strnlen
        - unescape
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/string.c:120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:121,3'
              BranchSideFuncs:
                - strnlen
                - unescape
            - BranchSide:      'winpr/libwinpr/crt/string.c:123,9'
              BranchSideFuncs:
                - strnlen
                - unescape
        - Branch String:   'winpr/libwinpr/crt/string.c:124,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/string.c:126,22'
              BranchSideFuncs:
                - unescape
                - strnlen
            - BranchSide:      'winpr/libwinpr/crt/string.c:129,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/string.c:119,14'
          Dst:             calloc
        - Src:             'winpr/libwinpr/crt/string.c:124,25'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/crt/string.c:127,16'
          Dst:             unescape
    - functionName:    winpr_ConvertUTF16toUTF8_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 290
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sourceStart
        - sourceEnd
        - targetStart
        - targetEnd
        - flags
      BBCount:         68
      ICount:          406
      EdgeCount:       82
      CyclomaticComplexity: 16
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:148,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:148,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:150,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:160,32'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:160,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:190,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:160,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:163,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:190,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:163,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:165,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:185,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:168,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:168,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:174,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:168,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:170,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:174,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:174,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:177,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:193,32'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:193,35'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:199,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:193,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:195,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:199,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:202,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:204,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:206,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:206,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:208,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:210,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:210,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:212,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:214,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:214,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:216,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:220,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:226,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:226,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:234,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:226,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:228,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:234,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:234,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:236,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:262,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:236,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:240,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:245,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:251,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:257,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:259,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:262,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:266,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:271,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:276,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:281,6'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    isLegalUTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 307
      functionLinenumberEnd: 377
      functionDepth:   0
      returnType:      bool
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - source
        - length
      BBCount:         46
      ICount:          232
      EdgeCount:       56
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:311,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:314,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:318,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:324,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:330,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:369,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:318,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:318,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:319,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:318,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:319,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:321,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:324,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:324,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:325,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:324,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:325,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:327,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:330,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:331,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:333,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:333,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:337,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:343,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:349,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:355,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:361,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:337,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:338,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:340,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:343,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:344,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:346,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:349,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:350,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:352,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:355,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:356,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:358,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:361,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:362,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:363,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:369,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:369,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:371,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:369,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:370,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:371,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:373,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:374,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:376,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_ConvertUTF8toUTF16_Internal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 386
      functionLinenumberEnd: 529
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - sourceStart
        - sourceEnd
        - targetStart
        - targetEnd
        - flags
      BBCount:         64
      ICount:          432
      EdgeCount:       80
      CyclomaticComplexity: 18
      functionsReached:
        - isLegalUTF8
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:392,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:392,2'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:394,12'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:397,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:399,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:404,20'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:404,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:406,11'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:413,11'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:413,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:416,18'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:422,18'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:428,18'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:434,18'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:440,18'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:446,18'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:449,25'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:451,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:451,34'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:458,7'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:451,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:453,15'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:458,7'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:458,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:462,8'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:486,12'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:462,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:462,36'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:480,10'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:462,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:464,9'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:480,10'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:464,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:466,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:472,11'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:472,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:473,14'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:475,13'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:480,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:481,28'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:483,12'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:486,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:488,8'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:505,9'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:488,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:490,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:496,10'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:496,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:497,13'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:499,12'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:505,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:505,39'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:512,7'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:505,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:507,16'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:512,7'
              BranchSideFuncs:
                - isLegalUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:514,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:516,29'
              BranchSideFuncs:
                - isLegalUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:521,11'
              BranchSideFuncs:
                - isLegalUTF8
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:404,8'
          Dst:             isLegalUTF8
    - functionName:    winpr_ConvertUTF16toUTF8
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 579
      functionLinenumberEnd: 618
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - src
        - cchSrc
        - dst
        - cchDst
      BBCount:         15
      ICount:          131
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - _wcslen
        - winpr_ConvertUTF16toUTF8_Internal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:587,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:588,31'
              BranchSideFuncs:
                - _wcslen
                - winpr_ConvertUTF16toUTF8_Internal
                - SetLastError
                - winpr_ConvertUTF16toUTF8_Internal
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:590,11'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8_Internal
                - SetLastError
                - winpr_ConvertUTF16toUTF8_Internal
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:593,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:596,50'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8_Internal
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:602,12'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8_Internal
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:611,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:613,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:617,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:617,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:617,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:617,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:588,12'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:596,7'
          Dst:             winpr_ConvertUTF16toUTF8_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:606,7'
          Dst:             winpr_ConvertUTF16toUTF8_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:613,3'
          Dst:             SetLastError
    - functionName:    int_WideCharToMultiByte
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 665
      functionLinenumberEnd: 695
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - CodePage
        - dwFlags
        - lpWideCharStr
        - cchWideChar
        - lpMultiByteStr
        - cbMultiByte
        - lpDefaultChar
        - lpUsedDefaultChar
      BBCount:         19
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - _wcslen
        - winpr_ConvertUTF16toUTF8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:670,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:670,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:671,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:670,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:671,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:673,6'
              BranchSideFuncs:
                - __assert_fail
                - winpr_ConvertUTF16toUTF8
                - _wcslen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:673,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:674,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:676,2'
              BranchSideFuncs:
                - __assert_fail
                - winpr_ConvertUTF16toUTF8
                - _wcslen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:676,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:676,2'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8
                - _wcslen
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:678,6'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8
                - _wcslen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:678,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:680,30'
              BranchSideFuncs:
                - _wcslen
                - winpr_ConvertUTF16toUTF8
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:686,15'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:681,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:682,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:683,20'
              BranchSideFuncs:
                - winpr_ConvertUTF16toUTF8
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:676,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:680,22'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:693,9'
          Dst:             winpr_ConvertUTF16toUTF8
    - functionName:    winpr_ConvertUTF8toUTF16
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 537
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - src
        - cchSrc
        - dst
        - cchDst
      BBCount:         15
      ICount:          133
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - strlen
        - winpr_ConvertUTF8toUTF16_Internal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:545,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:546,26'
              BranchSideFuncs:
                - strlen
                - winpr_ConvertUTF8toUTF16_Internal
                - SetLastError
                - winpr_ConvertUTF8toUTF16_Internal
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:548,11'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16_Internal
                - SetLastError
                - winpr_ConvertUTF8toUTF16_Internal
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:551,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:554,50'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16_Internal
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:560,12'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16_Internal
                - SetLastError
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:569,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:571,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:575,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:575,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:575,36'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:575,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:546,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:554,7'
          Dst:             winpr_ConvertUTF8toUTF16_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:564,7'
          Dst:             winpr_ConvertUTF8toUTF16_Internal
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:571,3'
          Dst:             SetLastError
    - functionName:    int_MultiByteToWideChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/unicode_builtin.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 660
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - int
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - CodePage
        - dwFlags
        - lpMultiByteStr
        - cbMultiByte
        - lpWideCharStr
        - cchWideChar
      BBCount:         36
      ICount:          171
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Get
        - __assert_fail
        - strlen
        - winpr_ConvertUTF8toUTF16
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:630,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:630,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:631,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:630,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:631,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:633,6'
              BranchSideFuncs:
                - __assert_fail
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strlen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:633,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:634,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:636,6'
              BranchSideFuncs:
                - __assert_fail
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strlen
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:636,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:638,29'
              BranchSideFuncs:
                - strlen
                - __assert_fail
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:644,15'
              BranchSideFuncs:
                - __assert_fail
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:639,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:640,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:641,20'
              BranchSideFuncs:
                - __assert_fail
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:646,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:646,2'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:647,10'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:647,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:651,4'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:651,4'
              BranchSideFuncs:
                - winpr_ConvertUTF8toUTF16
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:654,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:654,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:654,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:654,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/crt/unicode_builtin.c:654,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:654,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/crt/unicode_builtin.c:654,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:638,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:646,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:654,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:654,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:654,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/crt/unicode_builtin.c:658,9'
          Dst:             winpr_ConvertUTF8toUTF16
    - functionName:    sTebDestruct
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/nt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - teb
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    sTebInitOnce
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/nt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 52
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_key_create
        - sTebDestruct
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/nt/nt.c:51,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:51,2'
              BranchSideFuncs:
                - pthread_key_create
            - BranchSide:      'winpr/libwinpr/nt/nt.c:51,2'
              BranchSideFuncs:
                - pthread_key_create
      Callsites:
        - Src:             'winpr/libwinpr/nt/nt.c:51,2'
          Dst:             pthread_key_create
        - Src:             'winpr/libwinpr/nt/nt.c:51,2'
          Dst:             sTebDestruct
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NtCurrentTeb
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/nt/nt.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         12
      ICount:          50
      EdgeCount:       15
      CyclomaticComplexity: 5
      functionsReached:
        - calloc
        - pthread_getspecific
        - pthread_once
        - pthread_setspecific
        - sTebInitOnce
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/nt/nt.c:56,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:56,7'
              BranchSideFuncs:
                - pthread_once
                - pthread_getspecific
                - calloc
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:56,7'
              BranchSideFuncs:
                - pthread_once
                - pthread_getspecific
                - calloc
                - pthread_setspecific
        - Branch String:   'winpr/libwinpr/nt/nt.c:58,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:58,6'
              BranchSideFuncs:
                - pthread_getspecific
                - calloc
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:60,34'
              BranchSideFuncs:
                - pthread_getspecific
                - calloc
                - pthread_setspecific
        - Branch String:   'winpr/libwinpr/nt/nt.c:60,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:62,10'
              BranchSideFuncs:
                - calloc
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:66,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/nt/nt.c:63,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/nt/nt.c:64,25'
              BranchSideFuncs:
                - pthread_setspecific
            - BranchSide:      'winpr/libwinpr/nt/nt.c:65,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/nt/nt.c:58,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/nt/nt.c:58,6'
          Dst:             sTebInitOnce
        - Src:             'winpr/libwinpr/nt/nt.c:60,14'
          Dst:             pthread_getspecific
        - Src:             'winpr/libwinpr/nt/nt.c:62,10'
          Dst:             calloc
        - Src:             'winpr/libwinpr/nt/nt.c:64,5'
          Dst:             pthread_setspecific
    - functionName:    pthread_once
      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:    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:    2
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    DeleteCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 252
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         9
      ICount:          59
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - sem_destroy
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:253,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:253,2'
              BranchSideFuncs:
                - sem_destroy
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:255,2'
              BranchSideFuncs:
                - sem_destroy
                - free
        - Branch String:   'winpr/libwinpr/synch/critical.c:260,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:260,6'
              BranchSideFuncs:
                - sem_destroy
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:265,29'
              BranchSideFuncs:
                - sem_destroy
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:253,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:265,3'
          Dst:             sem_destroy
    - functionName:    sem_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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    UnWaitCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 146
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - sem_post
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:140,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:140,2'
              BranchSideFuncs:
                - sem_post
            - BranchSide:      'winpr/libwinpr/synch/critical.c:140,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:140,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:144,2'
          Dst:             sem_post
    - functionName:    sem_post
      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:    LeaveCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         12
      ICount:          58
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - InterlockedDecrement
        - UnWaitCriticalSection
        - __assert_fail
      functionUses:    26
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:231,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:231,2'
              BranchSideFuncs:
                - InterlockedDecrement
                - InterlockedDecrement
                - UnWaitCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:234,8'
              BranchSideFuncs:
                - InterlockedDecrement
                - InterlockedDecrement
                - UnWaitCriticalSection
        - Branch String:   'winpr/libwinpr/synch/critical.c:234,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:237,3'
              BranchSideFuncs:
                - InterlockedDecrement
                - UnWaitCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:247,25'
              BranchSideFuncs:
                - InterlockedDecrement
        - Branch String:   'winpr/libwinpr/synch/critical.c:239,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:242,26'
              BranchSideFuncs:
                - UnWaitCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:244,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:231,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:239,7'
          Dst:             InterlockedDecrement
        - Src:             'winpr/libwinpr/synch/critical.c:242,4'
          Dst:             UnWaitCriticalSection
        - Src:             'winpr/libwinpr/synch/critical.c:247,3'
          Dst:             InterlockedDecrement
    - functionName:    TryEnterCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 204
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         11
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - GetCurrentThreadId
        - InterlockedCompareExchange
        - InterlockedIncrement
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:207,2'
              BranchSideFuncs:
                - InterlockedCompareExchange
                - InterlockedIncrement
            - BranchSide:      'winpr/libwinpr/synch/critical.c:210,34'
              BranchSideFuncs:
                - InterlockedCompareExchange
                - InterlockedIncrement
        - Branch String:   'winpr/libwinpr/synch/critical.c:210,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:212,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/critical.c:218,6'
              BranchSideFuncs:
                - InterlockedIncrement
        - Branch String:   'winpr/libwinpr/synch/critical.c:218,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:221,3'
              BranchSideFuncs:
                - InterlockedIncrement
            - BranchSide:      'winpr/libwinpr/synch/critical.c:226,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:205,45'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/synch/critical.c:207,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:210,6'
          Dst:             InterlockedCompareExchange
        - Src:             'winpr/libwinpr/synch/critical.c:222,3'
          Dst:             InterlockedIncrement
    - functionName:    WaitForCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 129
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         6
      ICount:          30
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - sem_wait
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:130,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:130,2'
              BranchSideFuncs:
                - sem_wait
            - BranchSide:      'winpr/libwinpr/synch/critical.c:130,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:130,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:134,2'
          Dst:             sem_wait
    - functionName:    sem_wait
      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:    EnterCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 149
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         12
      ICount:          66
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - GetCurrentThreadId
        - InterlockedIncrement
        - WaitForCriticalSection
        - __assert_fail
      functionUses:    20
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:150,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:150,2'
              BranchSideFuncs:
                - InterlockedIncrement
                - GetCurrentThreadId
                - GetCurrentThreadId
                - WaitForCriticalSection
            - BranchSide:      'winpr/libwinpr/synch/critical.c:184,28'
              BranchSideFuncs:
                - InterlockedIncrement
                - GetCurrentThreadId
                - GetCurrentThreadId
                - WaitForCriticalSection
        - Branch String:   'winpr/libwinpr/synch/critical.c:184,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:187,7'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WaitForCriticalSection
                - GetCurrentThreadId
            - BranchSide:      'winpr/libwinpr/synch/critical.c:199,2'
              BranchSideFuncs:
                - GetCurrentThreadId
        - Branch String:   'winpr/libwinpr/synch/critical.c:187,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:190,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/critical.c:195,26'
              BranchSideFuncs:
                - WaitForCriticalSection
                - GetCurrentThreadId
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:150,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:184,6'
          Dst:             InterlockedIncrement
        - Src:             'winpr/libwinpr/synch/critical.c:187,61'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/synch/critical.c:195,3'
          Dst:             WaitForCriticalSection
        - Src:             'winpr/libwinpr/synch/critical.c:200,55'
          Dst:             GetCurrentThreadId
    - functionName:    InitializeCriticalSectionAndSpinCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 101
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpCriticalSection
        - dwSpinCount
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeCriticalSectionEx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:102,9'
          Dst:             InitializeCriticalSectionEx
    - functionName:    InitializeCriticalSectionEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 54
      functionLinenumberEnd: 98
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - lpCriticalSection
        - dwSpinCount
        - Flags
      BBCount:         27
      ICount:          132
      EdgeCount:       32
      CyclomaticComplexity: 7
      functionsReached:
        - SetCriticalSectionSpinCount
        - WLog_Get
        - __assert_fail
        - sem_init
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:55,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:55,2'
              BranchSideFuncs:
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/critical.c:66,6'
              BranchSideFuncs:
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/critical.c:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:68,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/critical.c:71,2'
              BranchSideFuncs:
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
        - Branch String:   'winpr/libwinpr/synch/critical.c:68,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:68,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/critical.c:68,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/critical.c:68,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:68,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:68,3'
              BranchSideFuncs:
                - malloc
                - sem_init
                - SetCriticalSectionSpinCount
                - free
        - Branch String:   'winpr/libwinpr/synch/critical.c:78,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:79,3'
              BranchSideFuncs:
                - sem_init
                - SetCriticalSectionSpinCount
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:89,15'
              BranchSideFuncs:
                - sem_init
                - SetCriticalSectionSpinCount
                - free
        - Branch String:   'winpr/libwinpr/synch/critical.c:89,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:90,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/synch/critical.c:93,30'
              BranchSideFuncs:
                - SetCriticalSectionSpinCount
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:55,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/critical.c:68,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/critical.c:68,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/critical.c:68,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/critical.c:89,6'
          Dst:             sem_init
        - Src:             'winpr/libwinpr/synch/critical.c:93,2'
          Dst:             SetCriticalSectionSpinCount
    - functionName:    sem_init
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetCriticalSectionSpinCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpCriticalSection
        - dwSpinCount
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/critical.c:107,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/critical.c:107,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/critical.c:107,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:107,2'
          Dst:             __assert_fail
    - functionName:    InitializeCriticalSection
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/critical.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 50
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCriticalSection
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - InitializeCriticalSectionEx
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/critical.c:49,2'
          Dst:             InitializeCriticalSectionEx
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    EventGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 197
      functionLinenumberEnd: 204
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EventIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:200,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:201,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/event.c:203,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:200,7'
          Dst:             EventIsHandled
    - functionName:    EventIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:193,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    EventCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 238
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - EventCloseHandle_
        - EventIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:242,3'
              BranchSideFuncs:
                - EventCloseHandle_
            - BranchSide:      'winpr/libwinpr/synch/event.c:244,27'
              BranchSideFuncs:
                - EventCloseHandle_
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:241,7'
          Dst:             EventIsHandled
        - Src:             'winpr/libwinpr/synch/event.c:244,9'
          Dst:             EventCloseHandle_
    - functionName:    EventCloseHandle_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 235
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         9
      ICount:          54
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - winpr_event_uninit
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:208,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:209,3'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:211,6'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
        - Branch String:   'winpr/libwinpr/synch/event.c:211,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:214,3'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:217,22'
              BranchSideFuncs:
                - winpr_event_uninit
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:217,2'
          Dst:             winpr_event_uninit
    - functionName:    winpr_event_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 175
      functionLinenumberEnd: 187
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         9
      ICount:          62
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - close
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:176,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:178,9'
              BranchSideFuncs:
                - close
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:182,6'
              BranchSideFuncs:
                - close
        - Branch String:   'winpr/libwinpr/synch/event.c:182,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:182,6'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:184,9'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:178,3'
          Dst:             close
        - Src:             'winpr/libwinpr/synch/event.c:184,3'
          Dst:             close
    - functionName:    GetEventWaitObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 536
      functionLinenumberEnd: 542
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEventFileDescriptor
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:540,7'
          Dst:             GetEventFileDescriptor
    - functionName:    GetEventFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 484
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_Handle_getFd
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:486,9'
          Dst:             winpr_Handle_getFd
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:172,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:174,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:174,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:174,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:175,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:174,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:174,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:175,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:174,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:175,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:177,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:171,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    SetEventFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 498
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hEvent
        - FileDescriptor
        - mode
      BBCount:         28
      ICount:          151
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - SetLastError
        - WLog_Get
        - close
        - winpr_Handle_GetInfo
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:504,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:504,55'
              BranchSideFuncs:
                - close
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:506,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:504,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:506,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:511,24'
              BranchSideFuncs:
                - close
        - Branch String:   'winpr/libwinpr/synch/event.c:506,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:506,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:506,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:506,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:506,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:506,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/event.c:513,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:513,27'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/event.c:516,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/event.c:513,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:513,54'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:516,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/event.c:513,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:514,9'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/synch/event.c:516,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:504,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:506,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:506,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:506,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:507,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:514,3'
          Dst:             close
    - functionName:    CreateWaitObjectEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 466
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - bManualReset
        - bInitialState
        - pObject
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateFileDescriptorEventW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:468,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    CreateFileDescriptorEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 430
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - bManualReset
        - bInitialState
        - FileDescriptor
        - mode
      BBCount:         6
      ICount:          76
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - calloc
        - winpr_event_init_from_fd
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:436,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:436,6'
              BranchSideFuncs:
                - winpr_event_init_from_fd
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
            - BranchSide:      'winpr/libwinpr/synch/event.c:438,3'
              BranchSideFuncs:
                - winpr_event_init_from_fd
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:434,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:442,3'
          Dst:             winpr_event_init_from_fd
        - Src:             'winpr/libwinpr/synch/event.c:444,3'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - functionName:    winpr_event_init_from_fd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - event
        - fd
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - _handle
        - _type
        - _mode
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateFileDescriptorEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 456
      functionLinenumberEnd: 458
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - bManualReset
        - bInitialState
        - FileDescriptor
        - mode
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - CreateFileDescriptorEventW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:457,9'
          Dst:             CreateFileDescriptorEventW
    - functionName:    ResetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         21
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Get
        - winpr_Handle_GetInfo
        - winpr_event_reset
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:415,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:415,55'
              BranchSideFuncs:
                - winpr_event_reset
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:417,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:415,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:417,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:422,24'
              BranchSideFuncs:
                - winpr_event_reset
        - Branch String:   'winpr/libwinpr/synch/event.c:417,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:417,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:417,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:417,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:417,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:417,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:415,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:417,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:417,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:417,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:418,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:423,9'
          Dst:             winpr_event_reset
    - functionName:    winpr_event_reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 155
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         14
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 5
      functionsReached:
        - __errno_location
        - eventfd_read
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:168,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:168,23'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - eventfd_read
            - BranchSide:      'winpr/libwinpr/synch/event.c:168,3'
              BranchSideFuncs:
                - __errno_location
                - eventfd_read
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/event.c:168,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:162,14'
              BranchSideFuncs:
                - eventfd_read
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/synch/event.c:169,2'
              BranchSideFuncs:
                - __errno_location
                - eventfd_read
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/event.c:169,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:159,3'
              BranchSideFuncs:
                - eventfd_read
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/synch/event.c:171,10'
              BranchSideFuncs:
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:163,10'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/synch/event.c:168,23'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/event.c:171,10'
          Dst:             __errno_location
    - functionName:    eventfd_read
      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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    OpenEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 389
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwDesiredAccess
        - bInheritHandle
        - lpName
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:388,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:388,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:388,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:388,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:388,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:388,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:388,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:388,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:388,2'
          Dst:             WLog_PrintMessage
    - functionName:    OpenEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 373
      functionLinenumberEnd: 379
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwDesiredAccess
        - bInheritHandle
        - lpName
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:378,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:378,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:378,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:378,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:378,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:378,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:378,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:378,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:378,2'
          Dst:             WLog_PrintMessage
    - functionName:    CreateEventExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 355
      functionLinenumberEnd: 369
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - lpName
        - dwFlags
        - dwDesiredAccess
      BBCount:         24
      ICount:          110
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - CreateEventA
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:359,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:360,11'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:362,6'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:362,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:363,10'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:365,6'
              BranchSideFuncs:
                - CreateEventA
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:365,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:365,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - CreateEventA
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:366,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - CreateEventA
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:366,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:366,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - CreateEventA
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:366,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - CreateEventA
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:366,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:366,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - CreateEventA
            - BranchSide:      'winpr/libwinpr/synch/event.c:366,3'
              BranchSideFuncs:
                - CreateEventA
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:366,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:366,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:366,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:369,9'
          Dst:             CreateEventA
    - functionName:    CreateEventA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - bManualReset
        - bInitialState
        - lpName
      BBCount:         47
      ICount:          209
      EdgeCount:       58
      CyclomaticComplexity: 13
      functionsReached:
        - EventCloseHandle_
        - SetEvent
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Get
        - calloc
        - strdup
        - winpr_event_init
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:292,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:293,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:295,7'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
        - Branch String:   'winpr/libwinpr/synch/event.c:293,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:293,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:293,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:293,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:293,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
            - BranchSide:      'winpr/libwinpr/synch/event.c:293,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
        - Branch String:   'winpr/libwinpr/synch/event.c:295,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:296,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
            - BranchSide:      'winpr/libwinpr/synch/event.c:298,6'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
                - strdup
        - Branch String:   'winpr/libwinpr/synch/event.c:298,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:299,24'
              BranchSideFuncs:
                - strdup
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:301,2'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1725
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:308,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:309,3'
              BranchSideFuncs:
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
            - BranchSide:      'winpr/libwinpr/synch/event.c:311,25'
              BranchSideFuncs:
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
        - Branch String:   'winpr/libwinpr/synch/event.c:309,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:309,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:309,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:309,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:309,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
            - BranchSide:      'winpr/libwinpr/synch/event.c:309,3'
              BranchSideFuncs:
                - winpr_event_init
                - EventCloseHandle_
                - SetEvent
        - Branch String:   'winpr/libwinpr/synch/event.c:311,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:312,3'
              BranchSideFuncs:
                - SetEvent
                - EventCloseHandle_
            - BranchSide:      'winpr/libwinpr/synch/event.c:314,6'
              BranchSideFuncs:
                - SetEvent
                - EventCloseHandle_
        - Branch String:   'winpr/libwinpr/synch/event.c:314,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:316,17'
              BranchSideFuncs:
                - SetEvent
                - EventCloseHandle_
            - BranchSide:      'winpr/libwinpr/synch/event.c:328,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/event.c:316,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:317,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/event.c:318,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:290,37'
          Dst:             calloc
        - Src:             'winpr/libwinpr/synch/event.c:293,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:293,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:293,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:299,17'
          Dst:             strdup
        - Src:             'winpr/libwinpr/synch/event.c:306,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/synch/event.c:309,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:309,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:309,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:311,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/synch/event.c:316,8'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/synch/event.c:330,2'
          Dst:             EventCloseHandle_
    - functionName:    winpr_event_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 107
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         3
      ICount:          30
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - eventfd
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:110,18'
          Dst:             eventfd
    - functionName:    SetEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hEvent
      BBCount:         21
      ICount:          92
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Get
        - winpr_Handle_GetInfo
        - winpr_event_set
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:398,52'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:398,55'
              BranchSideFuncs:
                - winpr_event_set
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:398,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:405,24'
              BranchSideFuncs:
                - winpr_event_set
        - Branch String:   'winpr/libwinpr/synch/event.c:400,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:400,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:400,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:400,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/event.c:400,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:398,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/event.c:400,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:400,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:400,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:401,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/event.c:406,9'
          Dst:             winpr_event_set
    - functionName:    winpr_event_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 151
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - event
      BBCount:         10
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached:
        - __errno_location
        - eventfd_write
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:149,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:149,22'
              BranchSideFuncs:
                - __errno_location
                - eventfd_write
            - BranchSide:      'winpr/libwinpr/synch/event.c:149,2'
              BranchSideFuncs:
                - eventfd_write
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/event.c:149,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:144,13'
              BranchSideFuncs:
                - eventfd_write
                - __errno_location
            - BranchSide:      'winpr/libwinpr/synch/event.c:151,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:145,9'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/synch/event.c:149,22'
          Dst:             __errno_location
    - functionName:    eventfd_write
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    eventfd
      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:    CreateEventExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 350
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - lpName
        - dwFlags
        - dwDesiredAccess
      BBCount:         24
      ICount:          110
      EdgeCount:       29
      CyclomaticComplexity: 7
      functionsReached:
        - CreateEventW
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:340,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:341,11'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:343,6'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:343,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:344,10'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:346,6'
              BranchSideFuncs:
                - CreateEventW
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:346,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:346,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - CreateEventW
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:347,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - CreateEventW
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:347,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:347,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - CreateEventW
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/event.c:347,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - CreateEventW
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/event.c:347,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:347,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - CreateEventW
            - BranchSide:      'winpr/libwinpr/synch/event.c:347,3'
              BranchSideFuncs:
                - CreateEventW
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:347,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/event.c:347,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/event.c:347,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/event.c:350,9'
          Dst:             CreateEventW
    - functionName:    CreateEventW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/event.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 285
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpEventAttributes
        - bManualReset
        - bInitialState
        - lpName
      BBCount:         9
      ICount:          64
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - CreateEventA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/event.c:275,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:277,34'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - CreateEventA
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:282,24'
              BranchSideFuncs:
                - CreateEventA
                - free
        - Branch String:   'winpr/libwinpr/synch/event.c:278,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/event.c:279,4'
              BranchSideFuncs:
                - CreateEventA
                - free
            - BranchSide:      'winpr/libwinpr/synch/event.c:280,2'
              BranchSideFuncs:
                - CreateEventA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/event.c:277,10'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/synch/event.c:282,11'
          Dst:             CreateEventA
    - functionName:    winpr_InitOnceExecuteOnce
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 52
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
        - InitFn
        - Parameter
        - Context
      BBCount:         26
      ICount:          118
      EdgeCount:       29
      CyclomaticComplexity: 5
      functionsReached:
        - InterlockedCompareExchangePointer
        - Sleep
        - WLog_Get
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/init.c:55,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:59,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/init.c:64,44'
              BranchSideFuncs:
                - InterlockedCompareExchangePointer
                - Sleep
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:85,5'
              BranchSideFuncs:
                - Sleep
                - InterlockedCompareExchangePointer
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:88,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/init.c:64,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:68,6'
              BranchSideFuncs:
                - Sleep
                - InterlockedCompareExchangePointer
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:72,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/init.c:72,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:75,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/init.c:80,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/init.c:88,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:88,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:88,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/init.c:88,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:88,5'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:88,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:64,9'
          Dst:             InterlockedCompareExchangePointer
        - Src:             'winpr/libwinpr/synch/init.c:88,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/init.c:88,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/init.c:88,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/init.c:92,3'
          Dst:             Sleep
    - functionName:    winpr_InitOnceInitialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
      BBCount:         15
      ICount:          51
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/init.c:47,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:47,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:47,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/init.c:47,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:47,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:47,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:47,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/init.c:47,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/init.c:47,2'
          Dst:             WLog_PrintMessage
    - functionName:    winpr_InitOnceComplete
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 40
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpInitOnce
        - dwFlags
        - lpContext
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/init.c:41,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:41,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:41,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/init.c:41,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:41,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:41,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:41,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/init.c:41,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/init.c:41,2'
          Dst:             WLog_PrintMessage
    - functionName:    winpr_InitOnceBeginInitialize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/init.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 36
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpInitOnce
        - dwFlags
        - fPending
        - lpContext
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/init.c:35,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:35,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:35,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/init.c:35,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/init.c:35,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/init.c:35,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/init.c:35,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/init.c:35,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/init.c:35,2'
          Dst:             WLog_PrintMessage
    - functionName:    USleep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 148
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwMicroseconds
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usleep
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/sleep.c:124,2'
          Dst:             usleep
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SleepEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 117
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - int
      constantsTouched: []
      argNames:
        - dwMilliseconds
        - bAlertable
      BBCount:         64
      ICount:          252
      EdgeCount:       79
      CyclomaticComplexity: 17
      functionsReached:
        - WLog_Get
        - apc_collectFds
        - apc_executeCompletions
        - pollset_init
        - pollset_poll
        - pollset_uninit
        - usleep
        - winpr_GetCurrentThread
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/sleep.c:63,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:66,7'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:72,14'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:66,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:67,15'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:68,2'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:75,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:75,22'
              BranchSideFuncs:
                - usleep
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:77,10'
              BranchSideFuncs:
                - usleep
        - Branch String:   'winpr/libwinpr/synch/sleep.c:75,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:77,10'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:81,30'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:83,3'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:87,22'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:83,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:83,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:83,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:83,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:83,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:83,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/sleep.c:87,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:89,3'
              BranchSideFuncs:
                - pollset_poll
                - apc_executeCompletions
                - pollset_uninit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:93,7'
              BranchSideFuncs:
                - pollset_poll
                - apc_executeCompletions
                - pollset_uninit
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:89,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:89,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:89,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:89,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:89,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:89,3'
              BranchSideFuncs:
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/sleep.c:93,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:96,35'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:104,29'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/sleep.c:97,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:99,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:102,2'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/sleep.c:99,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:99,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:99,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/sleep.c:99,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:99,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:99,4'
              BranchSideFuncs:
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/sleep.c:104,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:106,7'
              BranchSideFuncs:
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/sleep.c:112,7'
              BranchSideFuncs:
                - pollset_uninit
      Callsites:
        - Src:             'winpr/libwinpr/synch/sleep.c:57,25'
          Dst:             winpr_GetCurrentThread
        - Src:             'winpr/libwinpr/synch/sleep.c:77,3'
          Dst:             usleep
        - Src:             'winpr/libwinpr/synch/sleep.c:81,7'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/sleep.c:83,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/sleep.c:83,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/sleep.c:83,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/sleep.c:87,7'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/sleep.c:89,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/sleep.c:89,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/sleep.c:89,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/sleep.c:96,12'
          Dst:             pollset_poll
        - Src:             'winpr/libwinpr/synch/sleep.c:99,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/sleep.c:99,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/sleep.c:99,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/sleep.c:104,6'
          Dst:             apc_executeCompletions
        - Src:             'winpr/libwinpr/synch/sleep.c:115,2'
          Dst:             pollset_uninit
    - functionName:    Sleep
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/sleep.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwMilliseconds
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - usleep
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/sleep.c:52,2'
          Dst:             usleep
    - functionName:    SignalObjectAndWait
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 536
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hObjectToSignal
        - hObjectToWaitOn
        - dwMilliseconds
        - bAlertable
      BBCount:         6
      ICount:          44
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetEvent
        - WaitForSingleObjectEx
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/wait.c:532,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:533,3'
              BranchSideFuncs:
                - WaitForSingleObjectEx
            - BranchSide:      'winpr/libwinpr/synch/wait.c:535,31'
              BranchSideFuncs:
                - WaitForSingleObjectEx
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:532,7'
          Dst:             SetEvent
        - Src:             'winpr/libwinpr/synch/wait.c:535,9'
          Dst:             WaitForSingleObjectEx
    - functionName:    WaitForSingleObjectEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hHandle
        - dwMilliseconds
        - bAlertable
      BBCount:         149
      ICount:          654
      EdgeCount:       187
      CyclomaticComplexity: 40
      functionsReached:
        - SetLastError
        - SleepEx
        - WLog_Get
        - _GetCurrentThread
        - __errno_location
        - apc_collectFds
        - apc_executeCompletions
        - pollset_add
        - pollset_init
        - pollset_isSignaled
        - pollset_poll
        - pollset_uninit
        - pthread_mutex_lock
        - pthread_mutex_timedlock
        - ts_add_ms
        - ts_from_ns
        - waitpid
        - winpr_Handle_GetInfo
        - winpr_Handle_cleanup
        - winpr_Handle_getFd
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/wait.c:141,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:143,3'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
                - winpr_Handle_getFd.1800
                - waitpid
                - SleepEx
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:148,6'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
                - winpr_Handle_getFd.1800
                - waitpid
                - SleepEx
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:143,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:143,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:143,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:143,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:143,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:143,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:148,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:148,56'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
                - waitpid
                - SleepEx
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:188,6'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
        - Branch String:   'winpr/libwinpr/synch/wait.c:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:153,44'
              BranchSideFuncs:
                - waitpid
                - SleepEx
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:188,6'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - _GetCurrentThread
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
        - Branch String:   'winpr/libwinpr/synch/wait.c:160,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:162,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/wait.c:165,13'
              BranchSideFuncs:
                - SleepEx
                - waitpid
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:168,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:168,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:168,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:168,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:168,5'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:168,5'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:175,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:175,40'
              BranchSideFuncs:
                - SleepEx
                - waitpid
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:175,14'
              BranchSideFuncs:
                - SleepEx
                - waitpid
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:178,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:179,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/wait.c:181,22'
              BranchSideFuncs:
                - waitpid
                - SleepEx
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:183,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:157,10'
              BranchSideFuncs:
                - waitpid
                - SleepEx
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:185,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/wait.c:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:190,38'
              BranchSideFuncs:
                - pthread_mutex_lock
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
            - BranchSide:      'winpr/libwinpr/synch/wait.c:212,7'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - _GetCurrentThread
        - Branch String:   'winpr/libwinpr/synch/wait.c:192,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:194,8'
              BranchSideFuncs:
                - ts_from_ns
                - ts_add_ms
                - pthread_mutex_timedlock
            - BranchSide:      'winpr/libwinpr/synch/wait.c:205,24'
              BranchSideFuncs:
                - pthread_mutex_lock
        - Branch String:   'winpr/libwinpr/synch/wait.c:200,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:201,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/wait.c:202,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/wait.c:219,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:221,28'
              BranchSideFuncs:
                - _GetCurrentThread
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:238,31'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:222,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:226,9'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:234,16'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:226,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:227,17'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:229,17'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:239,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:241,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:246,35'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:241,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:241,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:241,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:241,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:241,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:241,4'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:246,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:248,4'
              BranchSideFuncs:
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:253,30'
              BranchSideFuncs:
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:248,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:248,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:248,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:248,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:248,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:248,4'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:253,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:255,4'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:259,7'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:255,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:255,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:255,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:255,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:255,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pollset_uninit
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:255,4'
              BranchSideFuncs:
                - pollset_uninit
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:259,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:259,37'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:265,8'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:259,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:261,4'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:265,8'
              BranchSideFuncs:
                - pollset_poll
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:261,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:261,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:261,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:261,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:261,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pollset_uninit
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:261,4'
              BranchSideFuncs:
                - pollset_uninit
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:265,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:267,36'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
            - BranchSide:      'winpr/libwinpr/synch/wait.c:277,7'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
        - Branch String:   'winpr/libwinpr/synch/wait.c:268,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:270,10'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:275,3'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
                - apc_executeCompletions
        - Branch String:   'winpr/libwinpr/synch/wait.c:271,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:271,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:271,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:271,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:271,5'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - pollset_uninit
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:271,5'
              BranchSideFuncs:
                - pollset_uninit
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:278,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:278,44'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
            - BranchSide:      'winpr/libwinpr/synch/wait.c:281,11'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
        - Branch String:   'winpr/libwinpr/synch/wait.c:278,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:279,8'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
            - BranchSide:      'winpr/libwinpr/synch/wait.c:281,11'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_uninit
                - winpr_Handle_cleanup
        - Branch String:   'winpr/libwinpr/synch/wait.c:284,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:285,11'
              BranchSideFuncs:
                - winpr_Handle_cleanup
            - BranchSide:      'winpr/libwinpr/synch/wait.c:287,31'
              BranchSideFuncs:
                - winpr_Handle_cleanup
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:141,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/wait.c:143,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:143,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:143,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:144,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:148,37'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/synch/wait.c:159,14'
          Dst:             waitpid
        - Src:             'winpr/libwinpr/synch/wait.c:168,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:168,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:168,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:168,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:168,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/synch/wait.c:168,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:170,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:177,13'
          Dst:             SleepEx
        - Src:             'winpr/libwinpr/synch/wait.c:195,30'
          Dst:             ts_from_ns
        - Src:             'winpr/libwinpr/synch/wait.c:197,4'
          Dst:             ts_add_ms
        - Src:             'winpr/libwinpr/synch/wait.c:198,13'
          Dst:             pthread_mutex_timedlock
        - Src:             'winpr/libwinpr/synch/wait.c:205,4'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/synch/wait.c:221,28'
          Dst:             _GetCurrentThread
        - Src:             'winpr/libwinpr/synch/wait.c:238,12'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/synch/wait.c:241,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:241,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:241,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:242,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:246,8'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/wait.c:248,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:248,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:248,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:249,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:253,8'
          Dst:             pollset_add
        - Src:             'winpr/libwinpr/synch/wait.c:255,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:255,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:255,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:259,22'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/wait.c:261,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:261,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:261,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:267,13'
          Dst:             pollset_poll
        - Src:             'winpr/libwinpr/synch/wait.c:271,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:271,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:271,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:271,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:271,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/synch/wait.c:271,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:278,21'
          Dst:             apc_executeCompletions
        - Src:             'winpr/libwinpr/synch/wait.c:281,11'
          Dst:             pollset_isSignaled
        - Src:             'winpr/libwinpr/synch/wait.c:282,3'
          Dst:             pollset_uninit
        - Src:             'winpr/libwinpr/synch/wait.c:287,10'
          Dst:             winpr_Handle_cleanup
        - Src:             'winpr/libwinpr/synch/wait.c:291,2'
          Dst:             pollset_uninit
        - Src:             'winpr/libwinpr/synch/wait.c:292,2'
          Dst:             SetLastError
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_Handle_getFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 167
      functionLinenumberEnd: 178
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         13
      ICount:          75
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:172,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:174,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:174,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:174,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:175,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:174,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:174,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:175,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:174,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:175,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:177,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:171,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    ts_from_ns
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 63
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/wait.c:64,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:64,15'
              BranchSideFuncs:
                - winpr_GetUnixTimeNS
            - BranchSide:      'winpr/libwinpr/synch/wait.c:64,20'
              BranchSideFuncs:
                - winpr_GetUnixTimeNS
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:64,20'
          Dst:             winpr_GetUnixTimeNS
    - functionName:    ts_add_ms
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 133
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ts
        - dwMilliseconds
      BBCount:         1
      ICount:          43
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_timedlock
      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_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:    11
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_cleanup
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 181
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         13
      ICount:          76
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:185,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:186,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:188,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:188,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:188,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:189,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:189,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:192,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/../handle/handle.h:192,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:193,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/../handle/handle.h:195,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/../handle/handle.h:185,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    WaitForMultipleObjects
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 525
      functionLinenumberEnd: 526
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - int
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - nCount
        - lpHandles
        - bWaitAll
        - dwMilliseconds
      BBCount:         3
      ICount:          28
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WaitForMultipleObjectsEx
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:526,9'
          Dst:             WaitForMultipleObjectsEx
    - functionName:    WaitForMultipleObjectsEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 521
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - nCount
        - lpHandles
        - bWaitAll
        - dwMilliseconds
        - bAlertable
      BBCount:         204
      ICount:          898
      EdgeCount:       255
      CyclomaticComplexity: 53
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - apc_collectFds
        - apc_executeCompletions
        - pollset_add
        - pollset_init
        - pollset_isSignaled
        - pollset_poll
        - pollset_reset
        - pollset_uninit
        - winpr_GetCurrentThread
        - winpr_GetTickCount64
        - winpr_Handle_GetInfo
        - winpr_Handle_cleanup
        - winpr_Handle_getFd
        - winpr_log_backtrace
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/wait.c:319,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:319,18'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_GetCurrentThread
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:319,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:325,6'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_GetCurrentThread
        - Branch String:   'winpr/libwinpr/synch/wait.c:321,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:321,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:321,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/wait.c:325,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:327,12'
              BranchSideFuncs:
                - winpr_GetCurrentThread
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:344,30'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:328,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:332,8'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:340,15'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:332,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:333,16'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:335,16'
              BranchSideFuncs:
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:344,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:346,3'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:351,12'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:346,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:346,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:346,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:346,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:346,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:346,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/wait.c:354,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:355,13'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:357,11'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:366,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:368,8'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:405,7'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:368,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:370,27'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:376,30'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:370,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:371,6'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:373,24'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:376,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:378,5'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:384,28'
              BranchSideFuncs:
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:378,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:378,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:378,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:378,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:378,5'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:378,5'
              BranchSideFuncs:
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:385,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:387,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:393,31'
              BranchSideFuncs:
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:387,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:387,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:387,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:387,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:387,5'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:387,5'
              BranchSideFuncs:
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:393,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:395,5'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:401,10'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:395,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:395,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:395,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:395,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:395,5'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:395,5'
              BranchSideFuncs:
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:405,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:405,37'
              BranchSideFuncs:
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:414,10'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:405,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:407,4'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:414,10'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:407,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:407,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:407,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:407,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:407,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:407,4'
              BranchSideFuncs:
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:415,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:417,10'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
            - BranchSide:      'winpr/libwinpr/synch/wait.c:442,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
        - Branch String:   'winpr/libwinpr/synch/wait.c:419,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:420,14'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:422,24'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:425,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:427,10'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:439,3'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
        - Branch String:   'winpr/libwinpr/synch/wait.c:429,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:429,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:429,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:429,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:429,5'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:429,5'
              BranchSideFuncs:
                - winpr_log_backtrace
                - SetLastError
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:442,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:442,44'
              BranchSideFuncs:
                - apc_executeCompletions
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:449,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:442,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:444,8'
              BranchSideFuncs:
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:449,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:449,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:451,15'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:499,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:451,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:453,11'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:497,3'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:456,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:457,30'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:459,21'
              BranchSideFuncs:
                - pollset_isSignaled
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:462,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:464,38'
              BranchSideFuncs:
                - winpr_Handle_cleanup
                - pollset_uninit
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:496,4'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:465,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:467,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:473,10'
              BranchSideFuncs:
                - pollset_uninit
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:467,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:467,7'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:467,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pollset_uninit
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:467,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:467,7'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:467,7'
              BranchSideFuncs:
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:473,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:475,25'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:486,30'
              BranchSideFuncs:
                - pollset_uninit
        - Branch String:   'winpr/libwinpr/synch/wait.c:478,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:480,31'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:483,6'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:480,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:481,9'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:482,7'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:490,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:492,11'
              BranchSideFuncs:
                - pollset_uninit
            - BranchSide:      'winpr/libwinpr/synch/wait.c:495,5'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:499,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:499,21'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:511,4'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:499,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:501,4'
              BranchSideFuncs:
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:511,4'
              BranchSideFuncs:
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:503,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:505,5'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:509,3'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_poll
                - pollset_reset
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:505,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:505,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:505,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/wait.c:505,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:505,5'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/synch/wait.c:505,5'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/synch/wait.c:514,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/wait.c:361,8'
              BranchSideFuncs:
                - pollset_poll
                - pollset_reset
                - winpr_GetTickCount64
                - pollset_uninit
                - pollset_uninit
                - pollset_init
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - pollset_isSignaled
                - winpr_Handle_cleanup
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_executeCompletions
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - apc_collectFds
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_GetInfo.1796
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - winpr_Handle_getFd.1800
                - pollset_add
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_log_backtrace
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/wait.c:516,6'
              BranchSideFuncs:
                - pollset_uninit
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:321,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:321,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:321,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:327,12'
          Dst:             winpr_GetCurrentThread
        - Src:             'winpr/libwinpr/synch/wait.c:344,7'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/wait.c:346,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:346,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:346,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:353,8'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/synch/wait.c:376,9'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/synch/wait.c:378,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:378,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:378,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:379,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:380,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:384,9'
          Dst:             winpr_Handle_getFd
        - Src:             'winpr/libwinpr/synch/wait.c:387,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:387,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:387,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:388,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:389,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:393,9'
          Dst:             pollset_add
        - Src:             'winpr/libwinpr/synch/wait.c:395,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:395,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:395,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:396,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:397,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:405,22'
          Dst:             apc_collectFds
        - Src:             'winpr/libwinpr/synch/wait.c:407,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:407,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:407,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:408,4'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:409,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:424,13'
          Dst:             pollset_poll
        - Src:             'winpr/libwinpr/synch/wait.c:429,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:429,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:429,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:429,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/wait.c:429,5'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/synch/wait.c:429,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:435,5'
          Dst:             winpr_log_backtrace
        - Src:             'winpr/libwinpr/synch/wait.c:436,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:442,21'
          Dst:             apc_executeCompletions
        - Src:             'winpr/libwinpr/synch/wait.c:461,18'
          Dst:             pollset_isSignaled
        - Src:             'winpr/libwinpr/synch/wait.c:464,17'
          Dst:             winpr_Handle_cleanup
        - Src:             'winpr/libwinpr/synch/wait.c:467,7'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:467,7'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:467,7'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:501,4'
          Dst:             pollset_uninit
        - Src:             'winpr/libwinpr/synch/wait.c:503,9'
          Dst:             pollset_init
        - Src:             'winpr/libwinpr/synch/wait.c:505,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/wait.c:505,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/wait.c:505,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/synch/wait.c:506,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/synch/wait.c:511,4'
          Dst:             pollset_reset
        - Src:             'winpr/libwinpr/synch/wait.c:513,9'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/synch/wait.c:519,2'
          Dst:             pollset_uninit
    - functionName:    WaitForSingleObject
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/wait.c'
      linkageType:     InternalLinkage
      functionLinenumber: 297
      functionLinenumberEnd: 298
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hHandle
        - dwMilliseconds
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WaitForSingleObjectEx
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/synch/wait.c:298,9'
          Dst:             WaitForSingleObjectEx
    - functionName:    append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 570
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - buffer
        - size
        - append
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_str_append
      functionUses:    15
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:569,2'
          Dst:             winpr_str_append
    - functionName:    UnixChangeFileMode
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1351
      functionLinenumberEnd: 1384
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - filename
        - flags
      BBCount:         6
      ICount:          146
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - chmod
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1352,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1353,3'
              BranchSideFuncs:
                - chmod
            - BranchSide:      'winpr/libwinpr/file/generic.c:1355,9'
              BranchSideFuncs:
                - chmod
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1368,9'
          Dst:             chmod
    - functionName:    chmod
      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:    MoveFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1342
      functionLinenumberEnd: 1343
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MoveFileExW
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1343,9'
          Dst:             MoveFileExW
    - functionName:    MoveFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1315
      functionLinenumberEnd: 1334
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
        - dwFlags
      BBCount:         15
      ICount:          84
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - MoveFileExA
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1316,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1316,30'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - free
                - MoveFileExA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1317,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:1316,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1317,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - free
                - MoveFileExA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1319,54'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - free
                - MoveFileExA
        - Branch String:   'winpr/libwinpr/file/generic.c:1323,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1323,31'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - MoveFileExA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1325,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1323,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1325,3'
              BranchSideFuncs:
                - MoveFileExA
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1329,20'
              BranchSideFuncs:
                - MoveFileExA
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1319,30'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1320,25'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1325,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1329,8'
          Dst:             MoveFileExA
    - functionName:    MoveFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1284
      functionLinenumberEnd: 1312
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
        - dwFlags
      BBCount:         17
      ICount:          100
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - __errno_location
        - map_posix_err
        - rename
        - stat64
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1289,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1291,7'
              BranchSideFuncs:
                - rename
                - __errno_location
                - map_posix_err
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1299,7'
              BranchSideFuncs:
                - rename
                - __errno_location
                - map_posix_err
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1291,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1293,4'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1296,2'
              BranchSideFuncs:
                - rename
                - __errno_location
                - map_posix_err
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1308,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1309,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1311,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1287,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:1293,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1301,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1306,8'
          Dst:             rename
        - Src:             'winpr/libwinpr/file/generic.c:1309,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1309,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:1309,3'
          Dst:             SetLastError
    - 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:    MoveFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1337
      functionLinenumberEnd: 1338
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MoveFileExA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1338,9'
          Dst:             MoveFileExA
    - functionName:    RemoveDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1265
      functionLinenumberEnd: 1281
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - RemoveDirectoryA
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1266,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1267,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - RemoveDirectoryA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1268,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - RemoveDirectoryA
        - Branch String:   'winpr/libwinpr/file/generic.c:1271,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1273,3'
              BranchSideFuncs:
                - RemoveDirectoryA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1277,25'
              BranchSideFuncs:
                - RemoveDirectoryA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1268,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1273,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1277,8'
          Dst:             RemoveDirectoryA
    - functionName:    RemoveDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1253
      functionLinenumberEnd: 1261
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - __errno_location
        - map_posix_err
        - rmdir
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1256,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1257,30'
              BranchSideFuncs:
                - __errno_location
                - map_posix_err
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1259,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1254,12'
          Dst:             rmdir
        - Src:             'winpr/libwinpr/file/generic.c:1257,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1257,16'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:1257,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1259,3'
          Dst:             SetLastError
    - 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:    CreateDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1234
      functionLinenumberEnd: 1250
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
        - lpSecurityAttributes
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - CreateDirectoryA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1235,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1236,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - CreateDirectoryA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1237,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - CreateDirectoryA
        - Branch String:   'winpr/libwinpr/file/generic.c:1240,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1242,3'
              BranchSideFuncs:
                - CreateDirectoryA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1246,25'
              BranchSideFuncs:
                - CreateDirectoryA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1237,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1242,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1246,8'
          Dst:             CreateDirectoryA
    - functionName:    CreateDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1226
      functionLinenumberEnd: 1231
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
        - lpSecurityAttributes
      BBCount:         6
      ICount:          34
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - mkdir
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1227,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1228,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:1230,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1227,7'
          Dst:             mkdir
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FindNextFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1175
      functionLinenumberEnd: 1199
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFindFile
        - lpFindFileData
      BBCount:         10
      ICount:          66
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertFindDataAToW
        - FindNextFileA
        - SetLastError
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1178,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1180,3'
              BranchSideFuncs:
                - FindNextFileA
                - free
                - ConvertFindDataAToW
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1184,20'
              BranchSideFuncs:
                - FindNextFileA
                - free
                - ConvertFindDataAToW
                - SetLastError
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1184,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1186,28'
              BranchSideFuncs:
                - ConvertFindDataAToW
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1197,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1186,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1188,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1193,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1176,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1180,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1184,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1186,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1188,4'
          Dst:             SetLastError
    - functionName:    FindNextFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1111
      functionLinenumberEnd: 1172
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFindFile
        - lpFindFileData
      BBCount:         22
      ICount:          202
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached:
        - FilePatternMatchA
        - FindDataFromStat
        - SetLastError
        - __errno_location
        - is_valid_file_search_handle
        - map_posix_err
        - readdir64
        - stat64
        - strlen
        - strncpy
        - strnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1113,3'
              BranchSideFuncs:
                - is_valid_file_search_handle
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1115,25'
              BranchSideFuncs:
                - is_valid_file_search_handle
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1118,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1119,3'
              BranchSideFuncs:
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1121,55'
              BranchSideFuncs:
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1123,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1125,25'
              BranchSideFuncs:
                - FilePatternMatchA
                - readdir64
                - SetLastError
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1170,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1125,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1123,2'
              BranchSideFuncs:
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1127,9'
              BranchSideFuncs:
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1134,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1136,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1140,11'
              BranchSideFuncs:
                - stat64
                - FindDataFromStat
                - free
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - SetLastError
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
        - Branch String:   'winpr/libwinpr/file/generic.c:1143,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1144,5'
              BranchSideFuncs:
                - stat64
                - FindDataFromStat
                - free
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - SetLastError
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
            - BranchSide:      'winpr/libwinpr/file/generic.c:1145,11'
              BranchSideFuncs:
                - stat64
                - FindDataFromStat
                - free
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - SetLastError
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
        - Branch String:   'winpr/libwinpr/file/generic.c:1149,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1151,10'
              BranchSideFuncs:
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1158,8'
              BranchSideFuncs:
                - FindDataFromStat
                - free
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:1158,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1160,10'
              BranchSideFuncs:
                - free
                - readdir64
                - SetLastError
                - FilePatternMatchA
                - strncpy
                - strnlen
                - strlen
                - malloc
                - stat64
                - FindDataFromStat
                - free
                - free
                - __errno_location
                - map_posix_err
                - SetLastError
                - __errno_location
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:1164,31'
              BranchSideFuncs:
                - FindDataFromStat
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1118,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1123,20'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/file/generic.c:1125,7'
          Dst:             FilePatternMatchA
        - Src:             'winpr/libwinpr/file/generic.c:1129,4'
          Dst:             strncpy
        - Src:             'winpr/libwinpr/file/generic.c:1130,27'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/generic.c:1131,21'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1136,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1149,8'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:1152,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1152,18'
          Dst:             map_posix_err
        - Src:             'winpr/libwinpr/file/generic.c:1152,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1153,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/file/generic.c:1164,14'
          Dst:             FindDataFromStat
        - Src:             'winpr/libwinpr/file/generic.c:1170,2'
          Dst:             SetLastError
    - functionName:    ConvertFindDataAToW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1034
      functionLinenumberEnd: 1055
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFindFileDataA
        - lpFindFileDataW
      BBCount:         11
      ICount:          110
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ConvertUtf8NToWChar
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1035,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1035,27'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/file/generic.c:1036,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:1035,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1036,3'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/file/generic.c:1038,38'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/file/generic.c:1047,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1049,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:1051,29'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1047,6'
          Dst:             ConvertUtf8NToWChar
        - Src:             'winpr/libwinpr/file/generic.c:1051,9'
          Dst:             ConvertUtf8NToWChar
    - functionName:    is_valid_file_search_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 939
      functionLinenumberEnd: 948
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         10
      ICount:          53
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - strncmp
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:941,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:942,3'
              BranchSideFuncs:
                - strncmp
            - BranchSide:      'winpr/libwinpr/file/generic.c:943,6'
              BranchSideFuncs:
                - strncmp
        - Branch String:   'winpr/libwinpr/file/generic.c:943,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:944,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:945,33'
              BranchSideFuncs:
                - strncmp
        - Branch String:   'winpr/libwinpr/file/generic.c:945,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:946,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:947,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:945,6'
          Dst:             strncmp
    - 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:    strncpy
      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:    FindDataFromStat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 951
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - fileStat
        - lpFindFileData
      BBCount:         22
      ICount:          225
      EdgeCount:       29
      CyclomaticComplexity: 9
      functionsReached:
        - strlen
        - strrchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:956,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:957,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/generic.c:959,6'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/generic.c:959,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:960,3'
              BranchSideFuncs:
                - strrchr
                - strlen
            - BranchSide:      'winpr/libwinpr/file/generic.c:962,20'
              BranchSideFuncs:
                - strrchr
                - strlen
        - Branch String:   'winpr/libwinpr/file/generic.c:964,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:966,22'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/file/generic.c:973,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:969,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:969,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:971,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:969,41'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:969,45'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:971,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:969,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:970,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:971,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/generic.c:973,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:973,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:974,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:962,12'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:967,26'
          Dst:             strlen
    - functionName:    FindFirstFileExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1106
      functionLinenumberEnd: 1107
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpFileName
        - fInfoLevelId
        - lpFindFileData
        - fSearchOp
        - lpSearchFilter
        - dwAdditionalFlags
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FindFirstFileExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1100
      functionLinenumberEnd: 1101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpFileName
        - fInfoLevelId
        - lpFindFileData
        - fSearchOp
        - lpSearchFilter
        - dwAdditionalFlags
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FindFirstFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1058
      functionLinenumberEnd: 1096
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - lpFindFileData
      BBCount:         16
      ICount:          98
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertFindDataAToW
        - ConvertWCharToUtf8Alloc
        - FindClose
        - FindFirstFileA
        - SetLastError
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1061,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1062,3'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1063,46'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1065,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1067,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1071,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1072,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1074,3'
              BranchSideFuncs:
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1079,21'
              BranchSideFuncs:
                - FindFirstFileA
                - free
                - free
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1082,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1082,11'
              BranchSideFuncs:
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1084,28'
              BranchSideFuncs:
                - ConvertFindDataAToW
                - SetLastError
                - FindClose
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:1084,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1086,4'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1091,2'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1063,46'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:1067,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1071,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:1074,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1079,6'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:1084,8'
          Dst:             ConvertFindDataAToW
        - Src:             'winpr/libwinpr/file/generic.c:1086,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1087,4'
          Dst:             FindClose
    - functionName:    FindFirstFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 995
      functionLinenumberEnd: 1030
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - lpFindFileData
      BBCount:         18
      ICount:          121
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - FindClose
        - FindNextFileA
        - PathGetSeparatorA
        - SetLastError
        - file_search_new
        - strlen
        - strrchr
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:996,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:996,26'
              BranchSideFuncs:
                - SetLastError
                - strlen
                - PathGetSeparatorA
                - strrchr
                - FindClose
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
            - BranchSide:      'winpr/libwinpr/file/generic.c:998,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:996,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:998,3'
              BranchSideFuncs:
                - strlen
                - PathGetSeparatorA
                - strrchr
                - FindClose
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
            - BranchSide:      'winpr/libwinpr/file/generic.c:1002,25'
              BranchSideFuncs:
                - strlen
                - PathGetSeparatorA
                - strrchr
                - FindClose
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
        - Branch String:   'winpr/libwinpr/file/generic.c:1010,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1011,3'
              BranchSideFuncs:
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1012,22'
              BranchSideFuncs:
                - strlen
                - file_search_new
                - SetLastError
                - FindNextFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1013,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1014,3'
              BranchSideFuncs:
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1016,32'
              BranchSideFuncs:
                - file_search_new
                - SetLastError
                - FindNextFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1018,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1020,3'
              BranchSideFuncs:
                - FindNextFileA
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:1024,28'
              BranchSideFuncs:
                - FindNextFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:1024,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1024,55'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:1025,18'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:998,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1007,22'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1008,19'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/file/generic.c:1009,20'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/file/generic.c:1012,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/generic.c:1016,16'
          Dst:             file_search_new
        - Src:             'winpr/libwinpr/file/generic.c:1020,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:1024,6'
          Dst:             FindNextFileA
        - Src:             'winpr/libwinpr/file/generic.c:1028,2'
          Dst:             FindClose
    - functionName:    FindClose
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1202
      functionLinenumberEnd: 1223
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFindFile
      BBCount:         11
      ICount:          67
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - closedir
        - is_valid_file_search_handle
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:1204,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1205,3'
              BranchSideFuncs:
                - is_valid_file_search_handle
                - free
                - free
                - free
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:1211,35'
              BranchSideFuncs:
                - is_valid_file_search_handle
                - free
                - free
                - free
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:1211,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1212,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:1215,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:1218,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:1219,12'
              BranchSideFuncs:
                - closedir
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:1221,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:1211,7'
          Dst:             is_valid_file_search_handle
        - Src:             'winpr/libwinpr/file/generic.c:1219,3'
          Dst:             closedir
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    file_search_new
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 886
      functionLinenumberEnd: 936
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - name
        - namelen
        - pattern
        - patternlen
      BBCount:         32
      ICount:          195
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - FindClose
        - _strdup
        - calloc
        - closedir
        - opendir
        - stat64
        - strndup
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:888,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:889,3'
              BranchSideFuncs:
                - strndup
                - strndup
                - FindClose
                - opendir
                - stat64
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:891,9'
              BranchSideFuncs:
                - strndup
                - strndup
                - FindClose
                - opendir
                - stat64
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:895,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:895,31'
              BranchSideFuncs:
                - FindClose
                - opendir
                - stat64
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:896,3'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:895,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:896,3'
              BranchSideFuncs:
                - opendir
                - stat64
                - FindClose
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:898,30'
              BranchSideFuncs:
                - opendir
                - stat64
                - FindClose
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
        - Branch String:   'winpr/libwinpr/file/generic.c:899,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:905,15'
              BranchSideFuncs:
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:926,7'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:906,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:908,8'
              BranchSideFuncs:
                - FindClose
                - opendir
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:925,2'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:908,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:910,33'
              BranchSideFuncs:
                - opendir
                - FindClose
                - free
                - free
                - _strdup
                - _strdup
                - closedir
            - BranchSide:      'winpr/libwinpr/file/generic.c:924,3'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:911,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:913,11'
              BranchSideFuncs:
                - free
                - free
                - _strdup
                - _strdup
                - closedir
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:923,4'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:917,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:917,35'
              BranchSideFuncs:
                - closedir
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:919,16'
              BranchSideFuncs:
                - closedir
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:917,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:919,16'
              BranchSideFuncs:
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:922,5'
              BranchSideFuncs:
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:926,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:927,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:929,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:887,55'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/generic.c:893,24'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:894,27'
          Dst:             strndup
        - Src:             'winpr/libwinpr/file/generic.c:898,22'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:906,7'
          Dst:             stat64
        - Src:             'winpr/libwinpr/file/generic.c:910,25'
          Dst:             opendir
        - Src:             'winpr/libwinpr/file/generic.c:915,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:916,31'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/generic.c:919,7'
          Dst:             closedir
        - Src:             'winpr/libwinpr/file/generic.c:933,2'
          Dst:             FindClose
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 855
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCreationTime
        - lpLastAccessTime
        - lpLastWriteTime
      BBCount:         22
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:859,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:860,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:862,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:862,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:863,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:865,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:867,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:868,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:870,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:870,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:870,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:870,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:870,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:870,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:870,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:862,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:870,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:870,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:870,2'
          Dst:             WLog_PrintMessage
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    17
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    UnlockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 833
      functionLinenumberEnd: 851
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwReserved
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
        - lpOverlapped
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:837,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:838,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:840,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:840,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:841,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:843,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:845,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:846,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:849,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:849,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:849,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:849,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:849,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:849,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:849,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:840,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:849,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:849,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:849,2'
          Dst:             WLog_PrintMessage
    - functionName:    UnlockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 811
      functionLinenumberEnd: 829
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFileOffsetLow
        - dwFileOffsetHigh
        - nNumberOfBytesToUnlockLow
        - nNumberOfBytesToUnlockHigh
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:815,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:816,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:818,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:818,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:819,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:821,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:823,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:824,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:827,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:827,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:827,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:827,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:827,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:827,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:827,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:818,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:827,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:827,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:827,2'
          Dst:             WLog_PrintMessage
    - functionName:    LockFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 789
      functionLinenumberEnd: 807
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - dwFlags
        - dwReserved
        - nNumberOfBytesToLockLow
        - nNumberOfBytesToLockHigh
        - lpOverlapped
      BBCount:         22
      ICount:          122
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:793,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:794,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:796,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:796,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:797,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:799,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:801,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:802,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:805,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:805,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:805,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:805,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:805,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:805,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:805,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:796,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:805,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:805,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:805,2'
          Dst:             WLog_PrintMessage
    - functionName:    LockFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 767
      functionLinenumberEnd: 785
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFileOffsetLow
        - dwFileOffsetHigh
        - nNumberOfBytesToLockLow
        - nNumberOfBytesToLockHigh
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:771,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:772,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:774,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:774,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:775,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:777,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:779,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:780,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:783,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:783,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:783,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:783,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:783,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:783,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:783,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:774,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:783,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:783,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:783,2'
          Dst:             WLog_PrintMessage
    - functionName:    SetFilePointerEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 763
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - liDistanceToMove
        - lpNewFilePointer
        - dwMoveMethod
      BBCount:         22
      ICount:          116
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:749,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:750,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:752,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:752,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:753,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:755,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:757,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:758,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:761,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:761,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:761,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:761,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:761,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:761,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:761,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:752,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:761,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:761,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:761,2'
          Dst:             WLog_PrintMessage
    - functionName:    SetFilePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 741
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - lDistanceToMove
        - lpDistanceToMoveHigh
        - dwMoveMethod
      BBCount:         22
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:727,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:728,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:730,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:730,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:731,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:733,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:735,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:736,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:739,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:739,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:739,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:739,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:739,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:739,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:739,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:730,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:739,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:739,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:739,2'
          Dst:             WLog_PrintMessage
    - functionName:    GetFileSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 702
      functionLinenumberEnd: 719
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpFileSizeHigh
      BBCount:         22
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:706,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:707,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:709,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:709,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:710,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:712,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:714,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:715,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:717,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:717,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:717,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:717,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:717,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:717,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:717,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:709,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:717,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:717,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:717,2'
          Dst:             WLog_PrintMessage
    - functionName:    SetEndOfFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 682
      functionLinenumberEnd: 699
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         22
      ICount:          102
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:686,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:687,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:689,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:689,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:690,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:692,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:694,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:695,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:697,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:697,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:697,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:697,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:697,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:697,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:697,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:689,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:697,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:697,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:697,2'
          Dst:             WLog_PrintMessage
    - functionName:    SetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 679
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpFileName
        - dwFileAttributes
      BBCount:         23
      ICount:          115
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - SetFileAttributesA
        - SetLastError
        - WLog_Get
        - flagsToStr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:658,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:659,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
                - flagsToStr
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:661,6'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
                - flagsToStr
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:661,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:663,8'
              BranchSideFuncs:
                - flagsToStr
                - WLog_Get
                - WLog_IsLevelActive
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:669,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:666,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:666,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:666,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:666,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:666,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:666,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - SetFileAttributesA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:670,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:672,3'
              BranchSideFuncs:
                - SetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:676,27'
              BranchSideFuncs:
                - SetFileAttributesA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:665,7'
          Dst:             flagsToStr
        - Src:             'winpr/libwinpr/file/generic.c:666,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:666,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:666,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/generic.c:669,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:672,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:676,8'
          Dst:             SetFileAttributesA
    - functionName:    flagsToStr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 609
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - buffer
        - size
        - flags
      BBCount:         48
      ICount:          271
      EdgeCount:       63
      CyclomaticComplexity: 17
      functionsReached:
        - append
        - snprintf
        - winpr_str_append
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:577,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:578,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:578,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:579,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:580,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:580,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:581,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:582,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:582,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:583,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:584,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:584,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:585,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:586,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:587,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:588,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:588,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:589,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:590,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:590,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:591,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:592,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:592,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:593,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:594,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:594,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:595,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:596,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:596,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:597,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:598,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:598,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:599,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:600,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:601,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:602,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:602,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:603,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
                - append
            - BranchSide:      'winpr/libwinpr/file/generic.c:604,6'
              BranchSideFuncs:
                - snprintf
                - winpr_str_append
                - append
        - Branch String:   'winpr/libwinpr/file/generic.c:604,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:604,6'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
            - BranchSide:      'winpr/libwinpr/file/generic.c:605,10'
              BranchSideFuncs:
                - append
                - snprintf
                - winpr_str_append
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:577,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:579,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:581,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:583,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:585,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:587,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:589,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:591,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:593,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:595,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:597,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:599,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:601,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:603,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:605,3'
          Dst:             append
        - Src:             'winpr/libwinpr/file/generic.c:607,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/generic.c:608,2'
          Dst:             winpr_str_append
    - functionName:    SetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 613
      functionLinenumberEnd: 651
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpFileName
        - dwFileAttributes
      BBCount:         29
      ICount:          150
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Get
        - close
        - fchmod
        - flagsToStr
        - fstat64
        - open64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:619,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:621,8'
              BranchSideFuncs:
                - flagsToStr
                - WLog_Get
                - WLog_IsLevelActive
                - open64
                - fstat64
                - fchmod
                - close
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:627,12'
              BranchSideFuncs:
                - open64
                - fstat64
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:624,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:624,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - open64
                - fstat64
                - fchmod
                - close
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:624,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - open64
                - fstat64
                - fchmod
                - close
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:624,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:624,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - open64
                - fstat64
                - fchmod
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:624,3'
              BranchSideFuncs:
                - open64
                - fstat64
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:628,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:629,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:631,12'
              BranchSideFuncs:
                - fstat64
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:631,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:632,3'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:634,6'
              BranchSideFuncs:
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:634,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:636,6'
              BranchSideFuncs:
                - fchmod
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:640,6'
              BranchSideFuncs:
                - fchmod
                - close
        - Branch String:   'winpr/libwinpr/file/generic.c:643,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:644,3'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/file/generic.c:646,5'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:623,7'
          Dst:             flagsToStr
        - Src:             'winpr/libwinpr/file/generic.c:624,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:624,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:624,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/generic.c:627,7'
          Dst:             open64
        - Src:             'winpr/libwinpr/file/generic.c:631,6'
          Dst:             fstat64
        - Src:             'winpr/libwinpr/file/generic.c:643,6'
          Dst:             fchmod
        - Src:             'winpr/libwinpr/file/generic.c:648,2'
          Dst:             close
    - functionName:    open64
      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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetFileInformationByHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 548
      functionLinenumberEnd: 565
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpFileInformation
      BBCount:         22
      ICount:          106
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:552,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:553,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:555,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:555,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:556,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:558,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:560,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:561,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:563,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:563,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:563,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:563,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:563,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:563,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:563,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:555,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:563,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:563,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:563,2'
          Dst:             WLog_PrintMessage
    - functionName:    GetFileAttributesW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 531
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetFileAttributesA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:533,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:534,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:535,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:536,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:538,3'
              BranchSideFuncs:
                - GetFileAttributesA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:542,27'
              BranchSideFuncs:
                - GetFileAttributesA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:535,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:538,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:542,8'
          Dst:             GetFileAttributesA
    - functionName:    GetFileAttributesA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 519
      functionLinenumberEnd: 528
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - FindClose
        - FindFirstFileA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:523,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:524,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:526,12'
              BranchSideFuncs:
                - FindClose
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:523,15'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:526,2'
          Dst:             FindClose
    - functionName:    GetFileAttributesExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 501
      functionLinenumberEnd: 516
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - fInfoLevelId
        - lpFileInformation
      BBCount:         8
      ICount:          60
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - GetFileAttributesExA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:503,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:504,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesExA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:505,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - GetFileAttributesExA
                - free
        - Branch String:   'winpr/libwinpr/file/generic.c:507,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:509,3'
              BranchSideFuncs:
                - GetFileAttributesExA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:513,29'
              BranchSideFuncs:
                - GetFileAttributesExA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:505,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:509,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:513,8'
          Dst:             GetFileAttributesExA
    - functionName:    GetFileAttributesExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 478
      functionLinenumberEnd: 497
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - fInfoLevelId
        - lpFileInformation
      BBCount:         8
      ICount:          83
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - FindClose
        - FindFirstFileA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:483,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:484,3'
              BranchSideFuncs:
                - FindFirstFileA
                - FindClose
            - BranchSide:      'winpr/libwinpr/file/generic.c:486,30'
              BranchSideFuncs:
                - FindFirstFileA
                - FindClose
        - Branch String:   'winpr/libwinpr/file/generic.c:486,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:487,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:489,12'
              BranchSideFuncs:
                - FindClose
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:486,15'
          Dst:             FindFirstFileA
        - Src:             'winpr/libwinpr/file/generic.c:489,2'
          Dst:             FindClose
    - functionName:    FlushFileBuffers
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 457
      functionLinenumberEnd: 474
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         22
      ICount:          102
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:461,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:462,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:464,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:464,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:465,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:467,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:469,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:470,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:472,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:472,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:472,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:472,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:472,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:472,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:472,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:464,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:472,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:472,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:472,2'
          Dst:             WLog_PrintMessage
    - functionName:    WriteFileGather
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 436
      functionLinenumberEnd: 454
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - aSegmentArray
        - nNumberOfBytesToWrite
        - lpReserved
        - lpOverlapped
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:440,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:441,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:443,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:443,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:444,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:446,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:448,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:449,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:452,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:452,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:452,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:452,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:452,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:452,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:452,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:443,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:452,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:452,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:452,2'
          Dst:             WLog_PrintMessage
    - functionName:    WriteFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 414
      functionLinenumberEnd: 432
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpOverlapped
        - lpCompletionRoutine
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:418,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:419,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:421,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:421,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:422,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:424,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:426,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:427,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:430,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:430,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:430,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:430,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:430,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:430,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:430,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:421,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:430,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:430,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:430,2'
          Dst:             WLog_PrintMessage
    - functionName:    WriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:396,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:397,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:399,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:399,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:402,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:404,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:405,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:408,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:408,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:408,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:408,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:408,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:408,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:408,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:399,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:408,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:408,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:408,2'
          Dst:             WLog_PrintMessage
    - functionName:    ReadFileScatter
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 388
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - aSegmentArray
        - nNumberOfBytesToRead
        - lpReserved
        - lpOverlapped
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:374,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:375,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:377,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:377,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:378,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:380,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:382,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:383,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:386,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:386,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:386,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:386,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:386,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:386,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:386,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:377,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:386,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:386,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:386,2'
          Dst:             WLog_PrintMessage
    - functionName:    ReadFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 348
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToRead
        - lpOverlapped
        - lpCompletionRoutine
      BBCount:         22
      ICount:          118
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:352,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:353,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:355,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:355,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:356,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:358,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:360,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:361,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:364,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:364,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:364,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:364,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:364,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:364,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:364,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:355,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:364,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:364,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:364,2'
          Dst:             WLog_PrintMessage
    - functionName:    ReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 318
      functionLinenumberEnd: 344
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         27
      ICount:          137
      EdgeCount:       34
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:322,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:323,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:330,7'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:330,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:330,31'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:333,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:330,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:331,3'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:333,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.1928
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:333,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:334,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:336,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:338,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:339,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/generic.c:342,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:342,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:342,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:342,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/generic.c:342,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:342,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/generic.c:342,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:333,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/file/generic.c:342,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/generic.c:342,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/generic.c:342,2'
          Dst:             WLog_PrintMessage
    - functionName:    DeleteFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 301
      functionLinenumberEnd: 314
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         9
      ICount:          52
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - DeleteFileA
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:302,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:303,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - DeleteFileA
            - BranchSide:      'winpr/libwinpr/file/generic.c:304,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - DeleteFileA
        - Branch String:   'winpr/libwinpr/file/generic.c:307,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:308,3'
              BranchSideFuncs:
                - DeleteFileA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:310,19'
              BranchSideFuncs:
                - DeleteFileA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:304,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:310,7'
          Dst:             DeleteFileA
    - functionName:    DeleteFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 294
      functionLinenumberEnd: 297
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - unlink
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:296,11'
          Dst:             unlink
    - functionName:    unlink
      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:    CreateFileW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 274
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - dwDesiredAccess
        - dwShareMode
        - lpSecurityAttributes
        - dwCreationDisposition
        - dwFlagsAndAttributes
        - hTemplateFile
      BBCount:         9
      ICount:          77
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - CreateFileA
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:276,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:277,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - CreateFileA
            - BranchSide:      'winpr/libwinpr/file/generic.c:278,46'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - SetLastError
                - free
                - CreateFileA
        - Branch String:   'winpr/libwinpr/file/generic.c:280,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:282,3'
              BranchSideFuncs:
                - CreateFileA
                - free
            - BranchSide:      'winpr/libwinpr/file/generic.c:286,20'
              BranchSideFuncs:
                - CreateFileA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:278,22'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/file/generic.c:282,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:286,8'
          Dst:             CreateFileA
    - functionName:    CreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - dwDesiredAccess
        - dwShareMode
        - lpSecurityAttributes
        - dwCreationDisposition
        - dwFlagsAndAttributes
        - hTemplateFile
      BBCount:         19
      ICount:          139
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Unlock
        - HandleCreatorsInit
        - SetLastError
        - pthread_once
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:236,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:237,3'
              BranchSideFuncs:
                - pthread_once
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:239,6'
              BranchSideFuncs:
                - pthread_once
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:239,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:241,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:245,6'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/generic.c:245,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:247,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/generic.c:251,17'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/file/generic.c:253,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:255,47'
              BranchSideFuncs:
                - ArrayList_GetItem
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/file/generic.c:267,19'
              BranchSideFuncs:
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/file/generic.c:257,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:257,18'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/file/generic.c:265,2'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/file/generic.c:257,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:259,11'
              BranchSideFuncs:
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/file/generic.c:265,2'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - ArrayList_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:239,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/file/generic.c:239,6'
          Dst:             HandleCreatorsInit
        - Src:             'winpr/libwinpr/file/generic.c:241,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:247,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/generic.c:251,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/file/generic.c:253,26'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/file/generic.c:255,29'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/file/generic.c:262,4'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/file/generic.c:267,2'
          Dst:             ArrayList_Unlock
    - functionName:    HandleCreatorsInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/generic.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          42
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Append
        - ArrayList_New
        - GetCommHandleCreator
        - GetFileHandleCreator
        - GetNamedPipeClientHandleCreator
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/generic.c:189,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:189,2'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:189,2'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
        - Branch String:   'winpr/libwinpr/file/generic.c:189,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:189,2'
              BranchSideFuncs:
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:190,19'
              BranchSideFuncs:
                - ArrayList_New
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
        - Branch String:   'winpr/libwinpr/file/generic.c:192,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/generic.c:193,3'
              BranchSideFuncs:
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
            - BranchSide:      'winpr/libwinpr/file/generic.c:198,19'
              BranchSideFuncs:
                - GetNamedPipeClientHandleCreator
                - ArrayList_Append
                - GetCommHandleCreator
                - ArrayList_Append
                - GetFileHandleCreator
                - ArrayList_Append
      Callsites:
        - Src:             'winpr/libwinpr/file/generic.c:189,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/file/generic.c:190,19'
          Dst:             ArrayList_New
        - Src:             'winpr/libwinpr/file/generic.c:198,35'
          Dst:             GetNamedPipeClientHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:198,2'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:200,35'
          Dst:             GetCommHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:200,2'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/file/generic.c:202,35'
          Dst:             GetFileHandleCreator
        - Src:             'winpr/libwinpr/file/generic.c:202,2'
          Dst:             ArrayList_Append
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    NamedPipeClientGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeClientIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:87,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:88,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:90,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:90,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:91,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:93,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:87,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    NamedPipeClientIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 50
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:51,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    NamedPipeClientCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 81
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         15
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - NamedPipeClientIsHandled
        - close
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:58,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:59,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:61,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:61,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:64,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - free
                - free
                - close
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:67,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:67,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:70,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:73,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:73,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:74,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:76,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:58,7'
          Dst:             NamedPipeClientIsHandled
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:64,3'
          Dst:             close
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:70,3'
          Dst:             close
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - _handle
        - _type
        - _mode
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetNamePipeFileDescriptor
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 292
      functionLinenumberEnd: 305
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
      BBCount:         9
      ICount:          58
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeClientIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:297,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:298,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:300,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:300,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:300,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:300,57'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:297,7'
          Dst:             NamedPipeClientIsHandled
    - functionName:    GetNamedPipeUnixDomainSocketFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 279
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
      BBCount:         3
      ICount:          37
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetCombinedPath
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketBaseFilePathA
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:283,15'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:284,15'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:285,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeUnixDomainSocketBaseFilePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 265
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPath
        - GetKnownPath
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:266,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:266,8'
              BranchSideFuncs:
                - GetKnownPath
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:266,8'
              BranchSideFuncs:
                - GetKnownPath
                - GetCombinedPath
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:270,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:271,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:273,31'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:268,15'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:273,15'
          Dst:             GetCombinedPath
    - functionName:    GetNamedPipeNameWithoutPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 262
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - IsNamedPipeFileNameA
        - _strdup
        - strnlen
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:254,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:255,3'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - strnlen
                - _strdup
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:257,28'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - strnlen
                - _strdup
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:258,3'
              BranchSideFuncs:
                - strnlen
                - _strdup
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:260,24'
              BranchSideFuncs:
                - strnlen
                - _strdup
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:257,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:260,31'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:260,15'
          Dst:             _strdup
    - functionName:    IsNamedPipeFileNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strncmp
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:244,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:245,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:247,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:244,6'
          Dst:             strncmp
    - functionName:    NamedPipeClientCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - dwDesiredAccess
        - dwShareMode
        - lpSecurityAttributes
        - dwCreationDisposition
        - dwFlagsAndAttributes
        - hTemplateFile
      BBCount:         37
      ICount:          296
      EdgeCount:       49
      CyclomaticComplexity: 14
      functionsReached:
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketFilePathA
        - IsNamedPipeFileNameA
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Get
        - _strdup
        - calloc
        - close
        - connect
        - snprintf
        - socket
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:132,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:134,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:139,7'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - GetNamedPipeNameWithoutPrefixA
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:134,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:134,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:134,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:134,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:134,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:134,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:140,3'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - GetNamedPipeNameWithoutPrefixA
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:142,28'
              BranchSideFuncs:
                - IsNamedPipeFileNameA
                - GetNamedPipeNameWithoutPrefixA
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:142,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:143,3'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:145,40'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:147,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:148,3'
              BranchSideFuncs:
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:150,7'
              BranchSideFuncs:
                - free
                - calloc
                - SetLastError
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:153,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:155,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:159,23'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.1995
                - _strdup
                - SetLastError
                - free
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:163,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:165,3'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:170,2'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - free
                - free
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:179,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:181,15'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:186,65'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - free
                - free
                - free
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:188,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:190,15'
              BranchSideFuncs:
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:196,25'
              BranchSideFuncs:
                - socket
                - snprintf
                - connect
                - close
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:204,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:206,9'
              BranchSideFuncs:
                - close
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:214,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/namedPipeClient.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:223,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/namedPipeClient.c:225,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:134,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:134,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:134,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:135,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:142,7'
          Dst:             IsNamedPipeFileNameA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:145,9'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:151,34'
          Dst:             calloc
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:155,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:160,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:161,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:165,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:177,27'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:186,27'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:196,25'
          Dst:             socket
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:200,8'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:201,11'
          Dst:             connect
        - Src:             'winpr/libwinpr/file/namedPipeClient.c:206,3'
          Dst:             close
    - functionName:    GetNamedPipeClientHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/namedPipeClient.c'
      linkageType:     InternalLinkage
      functionLinenumber: 230
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FilePatternMatchSubExpressionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 87
      functionLinenumberEnd: 196
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - cchFileName
        - lpX
        - cchX
        - lpY
        - cchY
        - lpWildcard
        - ppMatchEnd
      BBCount:         48
      ICount:          261
      EdgeCount:       64
      CyclomaticComplexity: 18
      functionsReached:
        - WLog_Get
        - _strnicmp
        - strchr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/pattern.c:90,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:91,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - _strnicmp
                - strchr
                - _strnicmp
                - _strnicmp
                - strchr
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:93,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - _strnicmp
                - strchr
                - _strnicmp
                - _strnicmp
                - strchr
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:93,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:105,17'
              BranchSideFuncs:
                - _strnicmp
                - strchr
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:140,12'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - _strnicmp
                - strchr
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:105,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:106,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:118,7'
              BranchSideFuncs:
                - strchr
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:118,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:121,22'
              BranchSideFuncs:
                - strchr
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:131,15'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:123,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:124,5'
              BranchSideFuncs:
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:126,18'
              BranchSideFuncs:
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:126,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:127,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:128,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:140,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:150,7'
              BranchSideFuncs:
                - _strnicmp
                - strchr
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:189,12'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/pattern.c:150,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:151,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:153,17'
              BranchSideFuncs:
                - _strnicmp
                - strchr
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:153,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:154,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:164,7'
              BranchSideFuncs:
                - strchr
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:164,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:167,22'
              BranchSideFuncs:
                - strchr
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:177,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:169,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:170,5'
              BranchSideFuncs:
                - _strnicmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:172,18'
              BranchSideFuncs:
                - _strnicmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:172,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:173,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:174,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:177,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:178,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:180,15'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:191,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:191,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/pattern.c:191,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/file/pattern.c:191,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:191,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/file/pattern.c:191,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/pattern.c:105,7'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:121,14'
          Dst:             strchr
        - Src:             'winpr/libwinpr/file/pattern.c:126,8'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:153,7'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:167,14'
          Dst:             strchr
        - Src:             'winpr/libwinpr/file/pattern.c:172,8'
          Dst:             _strnicmp
        - Src:             'winpr/libwinpr/file/pattern.c:191,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/file/pattern.c:191,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/file/pattern.c:191,3'
          Dst:             WLog_PrintMessage
    - functionName:    FilePatternMatchA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 371
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
        - lpPattern
      BBCount:         34
      ICount:          345
      EdgeCount:       47
      CyclomaticComplexity: 15
      functionsReached:
        - FilePatternFindNextWildcardA
        - FilePatternMatchSubExpressionA
        - _stricmp
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/pattern.c:224,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:225,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:227,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:227,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:228,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:230,22'
              BranchSideFuncs:
                - strlen
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:240,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:240,32'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
            - BranchSide:      'winpr/libwinpr/file/pattern.c:253,6'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:240,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:241,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:253,6'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:253,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:255,13'
              BranchSideFuncs:
                - strlen
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:304,44'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
        - Branch String:   'winpr/libwinpr/file/pattern.c:258,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:261,8'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:269,2'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - _stricmp
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
        - Branch String:   'winpr/libwinpr/file/pattern.c:261,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:262,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:264,18'
              BranchSideFuncs:
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:264,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:265,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:267,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:306,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:308,10'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:366,16'
              BranchSideFuncs:
                - _stricmp
        - Branch String:   'winpr/libwinpr/file/pattern.c:326,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:328,10'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:338,4'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
        - Branch String:   'winpr/libwinpr/file/pattern.c:338,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:340,22'
              BranchSideFuncs:
                - FilePatternMatchSubExpressionA
                - FilePatternFindNextWildcardA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:360,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:349,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:350,6'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
            - BranchSide:      'winpr/libwinpr/file/pattern.c:352,21'
              BranchSideFuncs:
                - FilePatternFindNextWildcardA
                - FilePatternMatchSubExpressionA
      Callsites:
        - Src:             'winpr/libwinpr/file/pattern.c:230,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/pattern.c:231,16'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/pattern.c:256,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/file/pattern.c:258,8'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:264,8'
          Dst:             _stricmp
        - Src:             'winpr/libwinpr/file/pattern.c:304,15'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:324,20'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:332,12'
          Dst:             FilePatternMatchSubExpressionA
        - Src:             'winpr/libwinpr/file/pattern.c:346,13'
          Dst:             FilePatternMatchSubExpressionA
        - Src:             'winpr/libwinpr/file/pattern.c:357,9'
          Dst:             FilePatternFindNextWildcardA
        - Src:             'winpr/libwinpr/file/pattern.c:366,7'
          Dst:             _stricmp
    - functionName:    FilePatternFindNextWildcardA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/file/pattern.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPattern
        - pFlags
      BBCount:         24
      ICount:          131
      EdgeCount:       31
      CyclomaticComplexity: 9
      functionsReached:
        - strpbrk
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/file/pattern.c:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:51,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:81,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:51,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:53,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:56,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:56,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:58,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:61,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:63,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:65,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:68,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/file/pattern.c:68,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/file/pattern.c:70,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/file/pattern.c:73,13'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/file/pattern.c:47,15'
          Dst:             strpbrk
    - functionName:    CommGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 75
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:78,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:79,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:81,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:78,7'
          Dst:             CommIsHandled
    - functionName:    CommIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1355
      functionLinenumberEnd: 1360
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          32
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1356,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1357,3'
              BranchSideFuncs:
                - WINPR_HANDLE_IS_HANDLED.2113
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1359,33'
              BranchSideFuncs:
                - WINPR_HANDLE_IS_HANDLED.2113
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1356,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1359,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    CommInitialized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          28
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInit
        - SetLastError
        - pthread_once
      functionUses:    28
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:118,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:118,6'
              BranchSideFuncs:
                - pthread_once
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:118,6'
              BranchSideFuncs:
                - pthread_once
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:118,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:120,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:124,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:118,6'
          Dst:             pthread_once
        - Src:             'winpr/libwinpr/comm/comm.c:118,6'
          Dst:             CommInit
        - Src:             'winpr/libwinpr/comm/comm.c:120,3'
          Dst:             SetLastError
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    CommInit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         16
      ICount:          63
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - InitializeCriticalSectionEx
        - WLog_Get
        - __assert_fail
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:94,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:94,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm.c:94,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm.c:94,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:94,2'
              BranchSideFuncs:
                - __assert_fail
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm.c:95,2'
              BranchSideFuncs:
                - __assert_fail
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm.c:95,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:95,2'
              BranchSideFuncs:
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm.c:96,32'
              BranchSideFuncs:
                - calloc
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm.c:98,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:99,3'
              BranchSideFuncs:
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm.c:101,7'
              BranchSideFuncs:
                - InitializeCriticalSectionEx
                - free
                - WLog_Get
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm.c:101,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:103,8'
              BranchSideFuncs:
                - WLog_Get
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm.c:108,9'
              BranchSideFuncs:
                - WLog_Get
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm.c:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:109,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:109,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:94,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm.c:95,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm.c:96,32'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:101,7'
          Dst:             InitializeCriticalSectionEx
        - Src:             'winpr/libwinpr/comm/comm.c:108,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/comm/comm.c:109,2'
          Dst:             __assert_fail
    - functionName:    CommCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1376
      functionLinenumberEnd: 1403
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         21
      ICount:          133
      EdgeCount:       27
      CyclomaticComplexity: 8
      functionsReached:
        - CommIsHandled
        - DeleteCriticalSection
        - close
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1379,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1380,3'
              BranchSideFuncs:
                - DeleteCriticalSection
                - DeleteCriticalSection
                - DeleteCriticalSection
                - free
                - close
                - close
                - close
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1382,25'
              BranchSideFuncs:
                - DeleteCriticalSection
                - DeleteCriticalSection
                - DeleteCriticalSection
                - free
                - close
                - close
                - close
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1386,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1387,9'
              BranchSideFuncs:
                - close
                - free
                - close
                - close
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1389,6'
              BranchSideFuncs:
                - free
                - close
                - close
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1389,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1390,9'
              BranchSideFuncs:
                - close
                - free
                - close
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1392,6'
              BranchSideFuncs:
                - free
                - close
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1392,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1393,9'
              BranchSideFuncs:
                - close
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1395,6'
              BranchSideFuncs:
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1395,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1396,9'
              BranchSideFuncs:
                - close
                - free
                - close
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1398,6'
              BranchSideFuncs:
                - free
                - close
        - Branch String:   'winpr/libwinpr/comm/comm.c:1398,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1399,9'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1401,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1379,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1382,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1383,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1384,2'
          Dst:             DeleteCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1387,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1390,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1393,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1396,3'
          Dst:             close
        - Src:             'winpr/libwinpr/comm/comm.c:1399,3'
          Dst:             close
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - _handle
        - _type
        - _mode
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    _comm_setServerSerialDriver
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1109
      functionLinenumberEnd: 1125
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hComm
        - driverId
      BBCount:         8
      ICount:          54
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1115,3'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2120
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1117,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.2120
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:1117,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1119,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1123,23'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1114,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1117,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/comm/comm.c:1119,3'
          Dst:             CommLog_Print
    - functionName:    CommLog_Print
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 128
      functionLinenumberEnd: 136
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - level
      BBCount:         13
      ICount:          54
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - WLog_IsLevelActive
      functionUses:    133
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:130,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/libwinpr/comm/comm.c:133,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessageVA
        - Branch String:   'winpr/libwinpr/comm/comm.c:134,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:134,2'
              BranchSideFuncs:
                - WLog_PrintMessageVA
            - BranchSide:      'winpr/libwinpr/comm/comm.c:135,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:129,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:134,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/comm/comm.c:134,2'
          Dst:             WLog_PrintMessageVA
    - functionName:    QueryCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1030
      functionLinenumberEnd: 1085
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpDeviceName
        - lpTargetPath
        - ucchMax
      BBCount:         26
      ICount:          160
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - CommInitialized
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - strcmp
        - strcpy
        - strlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1034,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1035,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
                - strcmp
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1037,6'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
                - strcmp
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1037,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1039,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1043,6'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
                - strcmp
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1043,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1043,30'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1045,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1043,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1045,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1049,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
                - strcmp
        - Branch String:   'winpr/libwinpr/comm/comm.c:1052,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1054,7'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
                - strcmp
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1068,2'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1054,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1056,16'
              BranchSideFuncs:
                - strcmp
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1065,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1056,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1058,24'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1062,4'
              BranchSideFuncs:
                - LeaveCriticalSection
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
                - SetLastError
                - strcmp
        - Branch String:   'winpr/libwinpr/comm/comm.c:1070,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1072,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1076,14'
              BranchSideFuncs:
                - strlen
                - strcpy
                - strlen
                - strlen
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1076,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1078,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1082,10'
              BranchSideFuncs:
                - strcpy
                - strlen
                - strlen
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1032,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1034,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1039,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1045,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1049,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1056,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:1068,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1072,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1076,6'
          Dst:             strlen
        - Src:             'winpr/libwinpr/comm/comm.c:1078,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1082,2'
          Dst:             strcpy
        - Src:             'winpr/libwinpr/comm/comm.c:1083,15'
          Dst:             strlen
        - Src:             'winpr/libwinpr/comm/comm.c:1084,9'
          Dst:             strlen
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    DefineCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 935
      functionLinenumberEnd: 1011
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDeviceName
        - lpTargetPath
      BBCount:         27
      ICount:          202
      EdgeCount:       36
      CyclomaticComplexity: 11
      functionsReached:
        - CommInitialized
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - _strdup
        - calloc
        - strcmp
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:939,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:940,3'
              BranchSideFuncs:
                - EnterCriticalSection
                - _strdup
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:942,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - _strdup
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:944,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:946,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:950,29'
              BranchSideFuncs:
                - _strdup
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:952,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:954,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:958,29'
              BranchSideFuncs:
                - _strdup
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:960,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:962,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:966,6'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:967,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:969,7'
              BranchSideFuncs:
                - calloc
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - SetLastError
                - strcmp
                - free
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:998,6'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm.c:969,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:971,16'
              BranchSideFuncs:
                - strcmp
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - free
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:984,36'
              BranchSideFuncs:
                - calloc
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:971,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:974,10'
              BranchSideFuncs:
                - free
                - free
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:980,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
                - calloc
                - SetLastError
                - strcmp
                - free
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:986,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:988,5'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:992,28'
              BranchSideFuncs:
                - LeaveCriticalSection
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm.c:998,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1000,3'
              BranchSideFuncs:
                - SetLastError
                - free
                - free
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1004,2'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:939,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:942,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:946,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:950,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:954,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:958,21'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/comm/comm.c:962,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:971,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/comm/comm.c:984,36'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:988,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1000,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1004,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1009,2'
          Dst:             LeaveCriticalSection
    - functionName:    WaitCommEvent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 909
      functionLinenumberEnd: 923
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpEvtMask
        - lpOverlapped
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:912,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:913,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:917,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:917,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:918,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:920,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:912,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:920,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:921,2'
          Dst:             SetLastError
    - functionName:    TransmitCommChar
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 892
      functionLinenumberEnd: 906
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - hFile
        - cChar
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:895,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:896,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:900,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:900,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:901,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:903,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:895,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:903,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:904,2'
          Dst:             SetLastError
    - functionName:    EscapeCommFunction
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 875
      functionLinenumberEnd: 889
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFunc
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:878,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:879,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:883,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:883,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:884,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:886,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:878,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:886,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:887,2'
          Dst:             SetLastError
    - functionName:    SetupComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 872
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwInQueue
        - dwOutQueue
      BBCount:         8
      ICount:          63
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:858,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:859,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:861,21'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:864,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:867,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:871,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:858,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:864,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:867,3'
          Dst:             CommLog_Print
    - functionName:    CommIsHandleValid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1363
      functionLinenumberEnd: 1373
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommIsHandled
        - SetLastError
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1365,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1366,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1367,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1367,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1369,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1372,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1365,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm.c:1369,3'
          Dst:             SetLastError
    - functionName:    PurgeComm
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwFlags
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:839,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:840,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:842,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:842,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:845,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:849,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:839,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:842,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:845,3'
          Dst:             CommLog_Print
    - functionName:    ClearCommError
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 818
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpErrors
        - lpStat
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:821,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:822,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:826,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:826,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:827,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:829,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:821,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:829,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:830,2'
          Dst:             SetLastError
    - functionName:    ClearCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 801
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:804,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:805,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:809,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:809,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:810,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:812,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:804,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:812,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:813,2'
          Dst:             SetLastError
    - functionName:    SetCommBreak
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 784
      functionLinenumberEnd: 798
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:787,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:788,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:792,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:792,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:793,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:795,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:787,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:795,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:796,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 781
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpszName
        - lpCC
        - dwSize
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:774,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:775,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:778,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:774,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:778,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:779,2'
          Dst:             SetLastError
    - functionName:    SetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 762
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpszName
        - lpCC
        - dwSize
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:763,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:764,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:767,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:763,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:767,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:768,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 751
      functionLinenumberEnd: 759
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszName
        - lpCC
        - lpdwSize
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:752,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:753,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:756,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:752,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:756,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:757,2'
          Dst:             SetLastError
    - functionName:    GetDefaultCommConfigA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 740
      functionLinenumberEnd: 748
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszName
        - lpCC
        - lpdwSize
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:741,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:742,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:745,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:741,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:745,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:746,2'
          Dst:             SetLastError
    - functionName:    SetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 720
      functionLinenumberEnd: 737
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCommTimeouts
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:724,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:725,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:729,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:729,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:732,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:736,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:724,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:729,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:732,3'
          Dst:             CommLog_Print
    - functionName:    GetCommTimeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 696
      functionLinenumberEnd: 713
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCommTimeouts
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:700,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:701,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:705,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:705,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:708,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:712,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:700,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:705,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:708,3'
          Dst:             CommLog_Print
    - functionName:    SetCommState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 689
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpDCB
      BBCount:         66
      ICount:          512
      EdgeCount:       84
      CyclomaticComplexity: 20
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
        - SetLastError
        - _comm_ioctl_tcsetattr
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:482,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:483,3'
              BranchSideFuncs:
                - SetLastError
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:485,7'
              BranchSideFuncs:
                - SetLastError
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:485,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:487,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:495,22'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:497,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:500,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:506,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:506,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:510,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:514,24'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:520,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:523,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:528,25'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:532,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:535,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:539,18'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:541,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:543,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:546,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:546,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:548,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:551,10'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:551,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:554,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:558,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:563,4'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:567,18'
              BranchSideFuncs:
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:571,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:573,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:576,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:578,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:581,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:581,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:583,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:586,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:588,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:591,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:591,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:593,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:596,6'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:596,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:598,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:601,10'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:601,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:604,4'
              BranchSideFuncs:
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:609,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:613,13'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:618,4'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:622,18'
              BranchSideFuncs:
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:626,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:628,12'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:633,22'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:636,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:639,3'
              BranchSideFuncs:
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:645,16'
              BranchSideFuncs:
                - tcgetattr
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:645,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:648,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:652,6'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:652,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:654,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:658,19'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:662,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:664,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:668,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:682,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:684,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:688,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:482,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:487,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:497,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:500,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:506,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:510,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:520,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:523,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:532,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:535,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:566,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:604,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:621,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:636,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:639,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:645,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:648,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:659,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:682,6'
          Dst:             _comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:684,3'
          Dst:             SetLastError
    - functionName:    tcgetattr
      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:    14
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetCommState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 322
      functionLinenumberEnd: 461
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpDCB
      BBCount:         38
      ICount:          479
      EdgeCount:       52
      CyclomaticComplexity: 16
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
        - SetLastError
        - calloc
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:328,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:329,3'
              BranchSideFuncs:
                - SetLastError
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:331,7'
              BranchSideFuncs:
                - SetLastError
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:331,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:333,3'
              BranchSideFuncs:
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:337,6'
              BranchSideFuncs:
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:337,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:339,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:343,16'
              BranchSideFuncs:
                - tcgetattr
                - calloc
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:343,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:345,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:349,31'
              BranchSideFuncs:
                - calloc
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:351,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:353,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:358,26'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:361,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:364,3'
              BranchSideFuncs:
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:368,34'
              BranchSideFuncs:
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:371,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:373,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:376,38'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:379,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:382,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:386,39'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:389,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:391,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:393,20'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:393,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:395,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:399,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:409,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:411,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:413,20'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:413,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:415,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:419,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - CommDeviceIoControl
                - CommLog_Print
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:431,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:434,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:438,37'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
                - free
                - free
        - Branch String:   'winpr/libwinpr/comm/comm.c:443,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:446,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/comm/comm.c:450,36'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:328,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:333,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:339,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:343,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:345,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:349,21'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:353,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:361,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:364,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:373,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:379,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:382,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:431,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:434,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:443,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:446,3'
          Dst:             CommLog_Print
    - functionName:    GetCommProperties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpCommProp
      BBCount:         8
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommDeviceIoControl
        - CommIsHandleValid
        - CommLog_Print
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:299,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:300,3'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:302,27'
              BranchSideFuncs:
                - CommDeviceIoControl
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:302,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:305,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:309,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:299,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm.c:302,7'
          Dst:             CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm.c:305,3'
          Dst:             CommLog_Print
    - functionName:    GetCommModemStatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpModemStat
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:276,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:277,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:281,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:281,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:282,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:284,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:276,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:284,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:285,2'
          Dst:             SetLastError
    - functionName:    SetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hFile
        - dwEvtMask
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:259,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:260,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:264,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:264,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:265,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:267,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:259,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:267,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:268,2'
          Dst:             SetLastError
    - functionName:    GetCommMask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 239
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hFile
        - lpEvtMask
      BBCount:         8
      ICount:          47
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:242,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:243,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:247,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:247,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:248,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:250,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:242,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:250,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:251,2'
          Dst:             SetLastError
    - functionName:    SetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 222
      functionLinenumberEnd: 236
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hCommDev
        - lpCC
        - dwSize
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:225,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:226,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:230,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:230,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:231,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:233,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:225,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:233,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:234,2'
          Dst:             SetLastError
    - functionName:    GetCommConfig
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 219
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hCommDev
        - lpCC
        - lpdwSize
      BBCount:         8
      ICount:          50
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:208,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:209,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:213,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:213,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:214,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:216,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:208,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:216,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:217,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 194
      functionLinenumberEnd: 202
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszName
        - hWnd
        - lpCC
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:195,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:196,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:199,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:195,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:199,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:200,2'
          Dst:             SetLastError
    - functionName:    CommConfigDialogA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 183
      functionLinenumberEnd: 191
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszName
        - hWnd
        - lpCC
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:184,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:185,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:188,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:184,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:188,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:189,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 180
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDef
        - lpDCB
        - lpCommTimeouts
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:174,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:177,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:173,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:177,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:178,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBAndTimeoutsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 161
      functionLinenumberEnd: 169
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDef
        - lpDCB
        - lpCommTimeouts
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:162,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:163,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:166,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:162,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:166,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:167,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 150
      functionLinenumberEnd: 158
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDef
        - lpDCB
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:151,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:152,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:155,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:151,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:155,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:156,2'
          Dst:             SetLastError
    - functionName:    BuildCommDCBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDef
        - lpDCB
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommInitialized
        - CommLog_Print
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:140,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:141,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:144,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:140,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:144,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:145,2'
          Dst:             SetLastError
    - functionName:    CommCreateFileA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1167
      functionLinenumberEnd: 1352
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - int
        - int
        - 'N/A'
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDeviceName
        - dwDesiredAccess
        - dwShareMode
        - lpSecurityAttributes
        - dwCreationDisposition
        - dwFlagsAndAttributes
        - hTemplateFile
      BBCount:         47
      ICount:          361
      EdgeCount:       66
      CyclomaticComplexity: 21
      functionsReached:
        - CloseHandle
        - CommInitialized
        - CommLog_Print
        - InitializeCriticalSection
        - QueryCommDevice
        - SetLastError
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - __errno_location
        - _comm_ioctl_tcsetattr
        - calloc
        - eventfd
        - ioctl
        - open64
        - stat64
        - tcgetattr
        - winpr_strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1174,3'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1176,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:1176,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1179,17'
              BranchSideFuncs:
                - CommLog_Print
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1182,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1182,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1184,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1191,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:1191,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1194,17'
              BranchSideFuncs:
                - CommLog_Print
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1197,6'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1197,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1199,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1203,22'
              BranchSideFuncs:
                - QueryCommDevice
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1206,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1209,11'
              BranchSideFuncs:
                - stat64
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1211,51'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1216,7'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:1216,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1218,45'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1223,6'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:1223,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1226,17'
              BranchSideFuncs:
                - CommLog_Print
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1229,6'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1229,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1231,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1235,23'
              BranchSideFuncs:
                - calloc
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1237,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1239,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1243,33'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2119
                - open64
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1248,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1250,56'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1255,24'
              BranchSideFuncs:
                - open64
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1259,66'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1264,25'
              BranchSideFuncs:
                - eventfd
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1267,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1269,72'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1274,29'
              BranchSideFuncs:
                - InitializeCriticalSection
                - open64
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1277,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1279,67'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1284,26'
              BranchSideFuncs:
                - eventfd
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1287,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1289,73'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1294,29'
              BranchSideFuncs:
                - InitializeCriticalSection
                - InitializeCriticalSection
                - ioctl
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm.c:1299,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1301,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1317,2'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm.c:1319,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1321,3'
              BranchSideFuncs:
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1325,18'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - SetLastError
                - CloseHandle
        - Branch String:   'winpr/libwinpr/comm/comm.c:1339,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1341,3'
              BranchSideFuncs:
                - SetLastError
                - CloseHandle
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1345,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1173,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1178,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1184,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1193,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1199,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1203,6'
          Dst:             QueryCommDevice
        - Src:             'winpr/libwinpr/comm/comm.c:1209,6'
          Dst:             stat64
        - Src:             'winpr/libwinpr/comm/comm.c:1211,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1212,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1218,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1219,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1225,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1231,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1235,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/comm/comm.c:1239,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1243,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/comm/comm.c:1246,14'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1250,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1251,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1255,19'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1259,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1260,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1264,25'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1269,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1270,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1274,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1275,20'
          Dst:             open64
        - Src:             'winpr/libwinpr/comm/comm.c:1279,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1280,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1284,26'
          Dst:             eventfd
        - Src:             'winpr/libwinpr/comm/comm.c:1289,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1290,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1294,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1297,2'
          Dst:             InitializeCriticalSection
        - Src:             'winpr/libwinpr/comm/comm.c:1299,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm.c:1302,72'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1303,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm.c:1303,17'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm.c:1302,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1304,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm.c:1319,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1321,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1339,6'
          Dst:             _comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm.c:1341,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm.c:1349,2'
          Dst:             CloseHandle
    - functionName:    IsCommDevice
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1091
      functionLinenumberEnd: 1103
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpDeviceName
      BBCount:         8
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - CommInitialized
        - QueryCommDevice
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm.c:1094,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1095,3'
              BranchSideFuncs:
                - QueryCommDevice
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1097,22'
              BranchSideFuncs:
                - QueryCommDevice
        - Branch String:   'winpr/libwinpr/comm/comm.c:1097,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1099,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm.c:1102,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm.c:1094,7'
          Dst:             CommInitialized
        - Src:             'winpr/libwinpr/comm/comm.c:1097,6'
          Dst:             QueryCommDevice
    - functionName:    GetCommHandleCreator
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 88
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          6
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _comm_ioctl_tcsetattr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 729
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - fd
        - optional_actions
        - termios_p
      BBCount:         17
      ICount:          120
      EdgeCount:       23
      CyclomaticComplexity: 8
      functionsReached:
        - CommLog_Print
        - __errno_location
        - memcmp
        - tcgetattr
        - tcsetattr
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:690,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:692,60'
              BranchSideFuncs:
                - __errno_location
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:697,26'
              BranchSideFuncs:
                - tcgetattr
                - memcmp
                - CommLog_Print
                - tcsetattr
                - tcgetattr
                - memcmp
                - CommLog_Print
                - __errno_location
                - CommLog_Print
                - __errno_location
                - CommLog_Print
                - __errno_location
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:697,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:699,60'
              BranchSideFuncs:
                - __errno_location
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:703,28'
              BranchSideFuncs:
                - memcmp
                - CommLog_Print
                - tcsetattr
                - tcgetattr
                - memcmp
                - CommLog_Print
                - __errno_location
                - CommLog_Print
                - __errno_location
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:703,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:705,3'
              BranchSideFuncs:
                - CommLog_Print
                - tcsetattr
                - tcgetattr
                - memcmp
                - CommLog_Print
                - __errno_location
                - CommLog_Print
                - __errno_location
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:728,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:707,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:709,65'
              BranchSideFuncs:
                - __errno_location
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:713,3'
              BranchSideFuncs:
                - tcgetattr
                - memcmp
                - CommLog_Print
                - __errno_location
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:714,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:716,61'
              BranchSideFuncs:
                - __errno_location
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:720,29'
              BranchSideFuncs:
                - memcmp
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:720,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:722,4'
              BranchSideFuncs:
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:726,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:690,16'
          Dst:             tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:692,60'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:692,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:697,16'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:699,60'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:699,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:703,6'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:705,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:707,17'
          Dst:             tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:709,65'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:709,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:714,17'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:716,61'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:716,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:720,7'
          Dst:             memcmp
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:722,4'
          Dst:             CommLog_Print
    - functionName:    tcsetattr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    s_CommDeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hDevice
        - dwIoControlCode
        - lpInBuffer
        - nInBufferSize
        - lpOutBuffer
        - nOutBufferSize
        - lpBytesReturned
        - lpOverlapped
      BBCount:         242
      ICount:          1471
      EdgeCount:       306
      CyclomaticComplexity: 66
      functionsReached:
        - CommIsHandleValid
        - CommLog_Print
        - SerCx2Sys_s
        - SerCxSys_s
        - SerialSys_s
        - SetLastError
        - __assert_fail
        - _comm_serial_ioctl_name
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:74,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:75,3'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:77,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:77,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:79,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:83,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:83,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:85,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:90,2'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
                - SerCx2Sys_s
                - SerCxSys_s
                - SerialSys_s
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:100,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:103,26'
              BranchSideFuncs:
                - SerialSys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:107,26'
              BranchSideFuncs:
                - SerCxSys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:111,26'
              BranchSideFuncs:
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:114,3'
              BranchSideFuncs:
                - CommLog_Print
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:117,18'
              BranchSideFuncs:
                - CommLog_Print
                - SerCx2Sys_s
                - __assert_fail
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:122,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:122,2'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:124,10'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:124,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:130,23'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:136,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:153,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:174,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:195,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:212,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:233,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:250,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:271,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:288,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:309,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:326,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:347,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:355,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:363,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:371,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:379,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:400,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:417,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:438,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:462,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:479,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:496,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:517,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:525,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:533,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:541,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:549,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:570,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:591,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:608,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:618,6'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:136,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:138,54'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:149,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:140,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:140,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:141,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:141,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:143,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:147,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:153,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:155,54'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:170,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:157,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:157,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:158,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:158,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:160,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:164,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:164,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:165,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:167,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:174,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:176,40'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:191,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:178,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:178,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:179,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:179,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:181,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:185,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:185,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:186,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:188,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:195,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:197,49'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:208,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:199,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:199,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:200,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:200,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:202,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:206,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:212,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:214,49'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:229,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:216,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:216,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:217,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:217,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:219,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:223,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:223,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:224,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:226,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:233,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:235,63'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:246,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:237,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:237,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:238,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:238,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:240,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:244,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:250,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:252,63'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:267,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:254,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:254,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:255,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:255,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:257,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:261,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:261,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:262,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:264,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:271,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:273,52'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:284,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:275,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:275,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:276,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:276,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:278,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:282,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:288,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:290,52'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:305,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:292,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:292,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:293,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:293,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:295,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:299,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:299,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:300,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:302,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:309,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:311,52'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:322,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:313,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:313,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:314,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:314,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:316,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:320,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:326,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:328,52'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:343,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:330,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:330,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:331,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:331,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:333,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:337,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:337,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:338,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:340,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:347,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:349,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:351,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:355,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:357,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:359,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:363,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:365,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:367,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:371,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:373,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:375,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:379,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:381,32'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:396,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:383,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:383,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:384,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:384,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:386,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:390,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:390,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:391,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:393,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:400,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:402,32'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:413,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:404,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:404,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:405,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:405,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:407,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:411,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:417,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:419,32'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:434,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:421,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:421,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:422,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:422,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:424,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:428,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:428,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:429,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:431,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:438,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:440,34'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:458,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:442,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:442,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:443,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:443,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:445,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:449,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:449,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:451,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:455,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:462,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:464,57'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:475,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:466,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:466,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:467,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:467,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:469,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:473,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:479,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:481,33'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:492,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:483,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:483,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:484,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:484,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:486,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:490,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:496,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:498,50'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:513,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:500,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:500,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:501,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:501,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:503,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:507,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:507,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:508,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:510,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:517,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:519,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:521,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:525,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:527,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:529,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:533,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:535,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:537,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:541,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:543,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:545,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:549,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:551,28'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:566,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:553,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:553,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:554,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:554,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:556,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:560,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:560,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:561,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:563,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:570,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:572,28'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:587,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:574,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:574,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:575,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:575,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:577,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:581,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:581,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:582,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:584,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:591,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:593,28'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:604,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:595,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:595,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:596,9'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:596,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:598,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:602,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:608,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:610,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:612,4'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:74,7'
          Dst:             CommIsHandleValid
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:79,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:85,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:90,2'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:94,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:103,26'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:107,26'
          Dst:             SerCxSys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:111,26'
          Dst:             SerCx2Sys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:116,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:118,26'
          Dst:             SerCx2Sys_s
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:122,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:131,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:140,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:143,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:157,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:160,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:178,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:181,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:199,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:202,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:216,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:219,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:237,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:240,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:254,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:257,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:275,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:278,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:292,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:295,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:313,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:316,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:330,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:333,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:383,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:386,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:404,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:407,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:421,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:424,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:442,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:445,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:466,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:469,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:483,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:486,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:500,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:503,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:553,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:556,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:574,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:577,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:595,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:598,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:618,23'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:616,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:619,2'
          Dst:             SetLastError
    - functionName:    _comm_serial_ioctl_name
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 55
      functionLinenumberEnd: 65
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - number
      BBCount:         8
      ICount:          53
      EdgeCount:       9
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:56,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:58,27'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:64,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:58,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:60,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:62,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CommDeviceIoControl
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_ioctl.c'
      linkageType:     InternalLinkage
      functionLinenumber: 638
      functionLinenumberEnd: 683
      functionDepth:   0
      returnType:      int
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hDevice
        - dwIoControlCode
        - lpInBuffer
        - nInBufferSize
        - lpOutBuffer
        - nOutBufferSize
        - lpBytesReturned
        - lpOverlapped
      BBCount:         20
      ICount:          141
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - CommIsHandled
        - CommLog_Print
        - GetLastError
        - SetLastError
        - _comm_serial_ioctl_name
        - s_CommDeviceIoControl
      functionUses:    14
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:642,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:644,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:648,21'
              BranchSideFuncs:
                - CommIsHandled
                - SetLastError
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:648,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:649,3'
              BranchSideFuncs:
                - SetLastError
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:651,7'
              BranchSideFuncs:
                - SetLastError
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:651,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:653,3'
              BranchSideFuncs:
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:657,33'
              BranchSideFuncs:
                - s_CommDeviceIoControl
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:660,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:660,26'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:668,6'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:660,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:665,18'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:668,6'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:668,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:670,8'
              BranchSideFuncs:
                - _comm_serial_ioctl_name
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:682,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_ioctl.c:670,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:676,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_ioctl.c:679,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:644,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:648,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:653,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:657,11'
          Dst:             s_CommDeviceIoControl
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:663,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:676,25'
          Dst:             _comm_serial_ioctl_name
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:676,67'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_ioctl.c:672,4'
          Dst:             CommLog_Print
    - functionName:    consume_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1436
      functionLinenumberEnd: 1445
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - pOutputMask
        - event
      BBCount:         14
      ICount:          78
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    10
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1437,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1437,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1438,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1438,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1438,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1440,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1440,37'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1440,41'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1440,37'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1440,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1440,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1442,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1437,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1438,2'
          Dst:             __assert_fail
    - functionName:    unlock_return
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1448
      functionLinenumberEnd: 1452
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - res
      BBCount:         3
      ICount:          29
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1449,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1451,2'
          Dst:             LeaveCriticalSection
    - functionName:    refresh_PendingEvents
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1421
      functionLinenumberEnd: 1433
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          43
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - get_commstatus
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1424,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1424,2'
              BranchSideFuncs:
                - get_commstatus
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1427,22'
              BranchSideFuncs:
                - get_commstatus
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1427,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1429,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1432,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1424,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1427,7'
          Dst:             get_commstatus
    - functionName:    get_commstatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1261
      functionLinenumberEnd: 1417
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pCommstatus
      BBCount:         69
      ICount:          462
      EdgeCount:       90
      CyclomaticComplexity: 23
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - __assert_fail
        - commstatus_error
        - get_modemstatus
        - ioctl
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1267,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1267,2'
              BranchSideFuncs:
                - __assert_fail
                - EnterCriticalSection
                - get_modemstatus
                - commstatus_error
                - LeaveCriticalSection
                - SetLastError
                - ioctl
                - ioctl
                - ioctl
                - commstatus_error
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1268,2'
              BranchSideFuncs:
                - __assert_fail
                - EnterCriticalSection
                - get_modemstatus
                - commstatus_error
                - LeaveCriticalSection
                - SetLastError
                - ioctl
                - ioctl
                - ioctl
                - commstatus_error
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1268,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1268,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - get_modemstatus
                - commstatus_error
                - LeaveCriticalSection
                - SetLastError
                - ioctl
                - ioctl
                - ioctl
                - commstatus_error
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1271,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - get_modemstatus
                - commstatus_error
                - LeaveCriticalSection
                - SetLastError
                - ioctl
                - ioctl
                - ioctl
                - commstatus_error
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1276,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1278,25'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1287,12'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1278,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1279,4'
              BranchSideFuncs:
                - SetLastError
                - ioctl
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1283,3'
              BranchSideFuncs:
                - SetLastError
                - ioctl
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1287,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1289,25'
              BranchSideFuncs:
                - commstatus_error
                - LeaveCriticalSection
                - ioctl
                - ioctl
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1299,22'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1289,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1290,4'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1291,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1299,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1301,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1304,22'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1304,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1306,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1310,22'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1310,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1312,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1316,22'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1316,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1318,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1322,22'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1322,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1324,3'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1344,12'
              BranchSideFuncs:
                - ioctl
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1344,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1346,25'
              BranchSideFuncs:
                - commstatus_error
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1352,12'
              BranchSideFuncs:
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1346,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1347,4'
              BranchSideFuncs:
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1348,2'
              BranchSideFuncs:
                - ioctl
                - LeaveCriticalSection
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1352,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1354,25'
              BranchSideFuncs:
                - commstatus_error
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1364,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1354,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1355,4'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1356,2'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1364,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1366,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1369,23'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1369,49'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1370,7'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1378,3'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1369,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1372,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1378,3'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1381,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1383,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1386,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1386,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1388,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1391,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1391,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1393,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1396,22'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1396,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1398,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1401,6'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1401,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1403,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1409,3'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1267,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1268,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1271,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1276,7'
          Dst:             get_modemstatus
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1278,8'
          Dst:             commstatus_error
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1283,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1287,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1289,8'
          Dst:             commstatus_error
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1344,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1346,8'
          Dst:             commstatus_error
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1352,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1354,8'
          Dst:             commstatus_error
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1416,2'
          Dst:             LeaveCriticalSection
    - functionName:    get_modemstatus
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1010
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pRegister
      BBCount:         27
      ICount:          137
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - __assert_fail
        - commstatus_error
        - ioctl
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1013,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1013,2'
              BranchSideFuncs:
                - __assert_fail
                - ioctl
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1014,2'
              BranchSideFuncs:
                - __assert_fail
                - ioctl
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1014,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1014,2'
              BranchSideFuncs:
                - ioctl
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1016,3'
              BranchSideFuncs:
                - ioctl
                - commstatus_error
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1017,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1019,25'
              BranchSideFuncs:
                - commstatus_error
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1023,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1019,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1020,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1021,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1023,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1024,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1025,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1025,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1026,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1027,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1027,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1028,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1029,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1029,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1030,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1032,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1013,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1014,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1017,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1019,8'
          Dst:             commstatus_error
    - functionName:    commstatus_error
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1243
      functionLinenumberEnd: 1254
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - ctrl
      BBCount:         6
      ICount:          47
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __errno_location
        - winpr_strerror
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1248,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1250,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1253,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1245,68'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1246,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1246,16'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1245,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1250,3'
          Dst:             SetLastError
    - functionName:    is_wait_set
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1046
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         6
      ICount:          43
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1047,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1047,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1047,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1047,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1049,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1051,2'
          Dst:             LeaveCriticalSection
    - functionName:    clear_lines
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 921
      functionLinenumberEnd: 934
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - lines
      BBCount:         9
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - ioctl
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:922,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:922,2'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:924,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:924,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:926,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:933,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:922,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:924,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:928,17'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:928,39'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:928,24'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:927,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:929,3'
          Dst:             SetLastError
    - functionName:    set_lines
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 905
      functionLinenumberEnd: 918
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pComm
        - lines
      BBCount:         9
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - ioctl
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:906,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:906,2'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:908,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:908,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:910,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:917,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:906,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:908,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:912,17'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:912,39'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:912,24'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:911,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:913,3'
          Dst:             SetLastError
    - functionName:    reset_device
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1637
      functionLinenumberEnd: 1639
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    immediate_char
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1616
      functionLinenumberEnd: 1633
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pChar
      BBCount:         12
      ICount:          59
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - CommWriteFile
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1620,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1620,2'
              BranchSideFuncs:
                - __assert_fail
                - CommWriteFile
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
              BranchSideFuncs:
                - __assert_fail
                - CommWriteFile
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
              BranchSideFuncs:
                - CommWriteFile
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1629,25'
              BranchSideFuncs:
                - CommWriteFile
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1631,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1631,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1631,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1620,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1621,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1629,11'
          Dst:             CommWriteFile
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1631,2'
          Dst:             __assert_fail
    - functionName:    config_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1603
      functionLinenumberEnd: 1613
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSize
      BBCount:         12
      ICount:          52
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1604,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1604,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1605,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1605,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1605,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1608,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1608,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1609,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1611,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1604,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1605,2'
          Dst:             __assert_fail
    - functionName:    get_dtrrts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1583
      functionLinenumberEnd: 1600
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pMask
      BBCount:         18
      ICount:          88
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - get_modemstatus
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1586,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1586,2'
              BranchSideFuncs:
                - __assert_fail
                - get_modemstatus
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
              BranchSideFuncs:
                - __assert_fail
                - get_modemstatus
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
              BranchSideFuncs:
                - get_modemstatus
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1589,23'
              BranchSideFuncs:
                - get_modemstatus
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1590,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1592,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1594,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1595,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1596,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1596,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1597,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1599,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1586,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1587,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1589,7'
          Dst:             get_modemstatus
    - functionName:    set_xon
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1568
      functionLinenumberEnd: 1580
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - tcflow
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
              BranchSideFuncs:
                - tcflow
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1570,13'
              BranchSideFuncs:
                - tcflow
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1570,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1572,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1579,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1569,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1570,6'
          Dst:             tcflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1573,60'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1574,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1574,17'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1573,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1575,3'
          Dst:             SetLastError
    - functionName:    tcflow
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_xoff
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1553
      functionLinenumberEnd: 1565
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - tcflow
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1554,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1554,2'
              BranchSideFuncs:
                - tcflow
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1555,13'
              BranchSideFuncs:
                - tcflow
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1555,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1557,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1564,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1554,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1555,6'
          Dst:             tcflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1558,61'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1559,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1559,17'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1558,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1560,3'
          Dst:             SetLastError
    - functionName:    set_break_off
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1538
      functionLinenumberEnd: 1550
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - ioctl
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1539,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1539,2'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1540,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1540,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1542,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1549,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1539,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1540,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1543,68'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1544,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1544,17'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1543,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1545,3'
          Dst:             SetLastError
    - functionName:    set_break_on
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1523
      functionLinenumberEnd: 1535
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         9
      ICount:          53
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - ioctl
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1524,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1524,2'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1525,12'
              BranchSideFuncs:
                - ioctl
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1525,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1527,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1534,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1524,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1525,6'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1528,68'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1529,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1529,17'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1528,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1530,3'
          Dst:             SetLastError
    - functionName:    purge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1160
      functionLinenumberEnd: 1240
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pPurgeMask
      BBCount:         46
      ICount:          248
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - __errno_location
        - eventfd_write
        - tcflush
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1161,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1161,2'
              BranchSideFuncs:
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1162,2'
              BranchSideFuncs:
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1162,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1162,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1164,8'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1164,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1167,68'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1177,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1177,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1181,21'
              BranchSideFuncs:
                - eventfd_write
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1194,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1181,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1183,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1192,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1183,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1185,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1190,4'
              BranchSideFuncs:
                - __errno_location
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1190,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1190,4'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1191,3'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - eventfd_write
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1194,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1198,21'
              BranchSideFuncs:
                - eventfd_write
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - __errno_location
                - __errno_location
                - __assert_fail
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1211,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1198,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1200,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1209,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1200,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1202,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1207,4'
              BranchSideFuncs:
                - __errno_location
                - __assert_fail
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1207,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1207,4'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1208,3'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1211,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1215,15'
              BranchSideFuncs:
                - tcflush
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1225,7'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1215,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1217,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1223,2'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1225,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1229,15'
              BranchSideFuncs:
                - tcflush
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1239,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1229,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1231,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1237,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1161,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1162,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1167,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1168,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1181,7'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1183,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1186,69'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1187,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1187,19'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1186,5'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1190,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1190,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1198,7'
          Dst:             eventfd_write
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1200,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1203,69'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1204,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1204,19'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1203,5'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1207,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1207,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1215,7'
          Dst:             tcflush
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1218,73'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1219,33'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1219,18'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1218,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1220,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1229,7'
          Dst:             tcflush
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1232,73'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1233,33'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1233,18'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1232,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1234,4'
          Dst:             SetLastError
    - functionName:    tcflush
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_queue_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1134
      functionLinenumberEnd: 1157
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pQueueSize
      BBCount:         21
      ICount:          101
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1136,2'
              BranchSideFuncs:
                - __assert_fail
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1136,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1136,2'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1138,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1138,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1138,49'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1143,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1138,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1139,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1143,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1143,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1147,17'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1149,6'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1149,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1153,17'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1155,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1135,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1136,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1144,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1150,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1155,2'
          Dst:             SetLastError
    - functionName:    wait_on_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1459
      functionLinenumberEnd: 1520
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pOutputMask
      BBCount:         20
      ICount:          143
      EdgeCount:       23
      CyclomaticComplexity: 5
      functionsReached:
        - EnterCriticalSection
        - LeaveCriticalSection
        - Sleep
        - __assert_fail
        - consume_event
        - refresh_PendingEvents
        - unlock_return
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1460,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1460,2'
              BranchSideFuncs:
                - __assert_fail
                - EnterCriticalSection
                - LeaveCriticalSection
                - refresh_PendingEvents
                - unlock_return
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1461,2'
              BranchSideFuncs:
                - __assert_fail
                - EnterCriticalSection
                - LeaveCriticalSection
                - refresh_PendingEvents
                - unlock_return
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1461,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1461,2'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - refresh_PendingEvents
                - unlock_return
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1463,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - refresh_PendingEvents
                - unlock_return
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1470,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1471,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - refresh_PendingEvents
                - unlock_return
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1474,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - refresh_PendingEvents
                - unlock_return
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1476,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1483,4'
              BranchSideFuncs:
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1489,17'
              BranchSideFuncs:
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - Sleep
                - refresh_PendingEvents
                - unlock_return
                - EnterCriticalSection
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
                - unlock_return
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1483,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1483,4'
              BranchSideFuncs:
                - LeaveCriticalSection
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1485,26'
              BranchSideFuncs:
                - LeaveCriticalSection
                - unlock_return
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1505,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1506,25'
              BranchSideFuncs:
                - unlock_return
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1516,3'
              BranchSideFuncs:
                - Sleep
                - refresh_PendingEvents
                - unlock_return
                - EnterCriticalSection
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - consume_event
                - LeaveCriticalSection
                - unlock_return
                - __assert_fail
                - LeaveCriticalSection
                - unlock_return
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1460,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1461,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1463,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1465,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1470,8'
          Dst:             refresh_PendingEvents
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1471,11'
          Dst:             unlock_return
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1474,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1483,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1485,4'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1486,11'
          Dst:             unlock_return
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1489,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1490,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1491,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1492,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1493,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1494,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1495,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1496,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1497,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1498,3'
          Dst:             consume_event
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1500,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1506,11'
          Dst:             unlock_return
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1516,3'
          Dst:             Sleep
    - functionName:    get_wait_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1125
      functionLinenumberEnd: 1130
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         9
      ICount:          43
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1126,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1126,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1127,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1127,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1127,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1127,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1126,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1127,2'
          Dst:             __assert_fail
    - functionName:    set_wait_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1056
      functionLinenumberEnd: 1122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         26
      ICount:          172
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - CommLog_Print
        - EnterCriticalSection
        - LeaveCriticalSection
        - Sleep
        - __assert_fail
        - commstatus_error
        - ioctl
        - is_wait_set
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1059,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1059,2'
              BranchSideFuncs:
                - __assert_fail
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - Sleep
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
              BranchSideFuncs:
                - __assert_fail
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - Sleep
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
              BranchSideFuncs:
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - Sleep
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1065,18'
              BranchSideFuncs:
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - Sleep
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1065,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1069,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
                - Sleep
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1083,24'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1074,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1075,4'
              BranchSideFuncs:
                - Sleep
                - is_wait_set
                - EnterCriticalSection
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1077,25'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - EnterCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - ioctl
                - commstatus_error
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1085,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1089,13'
              BranchSideFuncs:
                - ioctl
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
                - commstatus_error
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1102,18'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1089,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1091,26'
              BranchSideFuncs:
                - commstatus_error
                - LeaveCriticalSection
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1099,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1091,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1093,27'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1096,4'
              BranchSideFuncs:
                - LeaveCriticalSection
                - CommLog_Print
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1104,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1109,18'
              BranchSideFuncs:
                - CommLog_Print
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1118,25'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1059,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1060,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1065,6'
          Dst:             is_wait_set
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1069,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1071,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1074,10'
          Dst:             is_wait_set
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1075,4'
          Dst:             Sleep
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1077,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1079,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1083,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1089,7'
          Dst:             ioctl
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1091,9'
          Dst:             commstatus_error
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1093,5'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1106,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1114,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1120,2'
          Dst:             LeaveCriticalSection
    - functionName:    clear_rts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 994
      functionLinenumberEnd: 1007
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         11
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - __assert_fail
        - clear_lines
        - get_handflow
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:996,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:996,2'
              BranchSideFuncs:
                - get_handflow
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:997,20'
              BranchSideFuncs:
                - get_handflow
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:997,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:998,3'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1000,15'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:1000,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1002,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:1006,21'
              BranchSideFuncs:
                - clear_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:996,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:997,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1002,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:1006,9'
          Dst:             clear_lines
    - functionName:    get_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 783
      functionLinenumberEnd: 850
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         36
      ICount:          219
      EdgeCount:       45
      CyclomaticComplexity: 11
      functionsReached:
        - SetLastError
        - __assert_fail
        - tcgetattr
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:786,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:786,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:787,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:787,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:787,2'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:789,16'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:789,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:791,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:797,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:799,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:800,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:804,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:804,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:805,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:817,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:819,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:820,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:822,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:822,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:823,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:825,23'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:825,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:826,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:828,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:828,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:829,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:833,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:833,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:834,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:836,21'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:836,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:837,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:843,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:786,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:787,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:789,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:791,3'
          Dst:             SetLastError
    - functionName:    set_rts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 977
      functionLinenumberEnd: 991
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         11
      ICount:          57
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - __assert_fail
        - get_handflow
        - set_lines
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:979,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:979,2'
              BranchSideFuncs:
                - get_handflow
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:981,20'
              BranchSideFuncs:
                - get_handflow
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:981,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:982,3'
              BranchSideFuncs:
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:984,15'
              BranchSideFuncs:
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:984,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:986,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:990,19'
              BranchSideFuncs:
                - set_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:979,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:981,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:986,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:990,9'
          Dst:             set_lines
    - functionName:    clear_dtr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 957
      functionLinenumberEnd: 974
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         14
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - __assert_fail
        - clear_lines
        - get_handflow
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:959,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:959,2'
              BranchSideFuncs:
                - get_handflow
                - __assert_fail
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:961,20'
              BranchSideFuncs:
                - get_handflow
                - __assert_fail
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:961,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:962,3'
              BranchSideFuncs:
                - __assert_fail
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
              BranchSideFuncs:
                - __assert_fail
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:967,15'
              BranchSideFuncs:
                - clear_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:967,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:969,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:973,21'
              BranchSideFuncs:
                - clear_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:959,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:961,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:965,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:969,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:973,9'
          Dst:             clear_lines
    - functionName:    set_dtr
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 937
      functionLinenumberEnd: 954
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
      BBCount:         14
      ICount:          69
      EdgeCount:       16
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - __assert_fail
        - get_handflow
        - set_lines
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:939,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:939,2'
              BranchSideFuncs:
                - get_handflow
                - __assert_fail
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:941,20'
              BranchSideFuncs:
                - get_handflow
                - __assert_fail
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:941,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:942,3'
              BranchSideFuncs:
                - __assert_fail
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
              BranchSideFuncs:
                - __assert_fail
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
              BranchSideFuncs:
                - set_lines
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:947,15'
              BranchSideFuncs:
                - set_lines
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:947,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:949,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:953,19'
              BranchSideFuncs:
                - set_lines
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:939,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:941,7'
          Dst:             get_handflow
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:945,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:949,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:953,9'
          Dst:             set_lines
    - functionName:    get_timeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 891
      functionLinenumberEnd: 901
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pTimeouts
      BBCount:         9
      ICount:          73
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:892,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:892,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:893,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:893,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:893,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:893,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:892,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:893,2'
          Dst:             __assert_fail
    - functionName:    set_timeouts
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 853
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pTimeouts
      BBCount:         15
      ICount:          128
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:854,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:854,2'
              BranchSideFuncs:
                - __assert_fail
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:855,2'
              BranchSideFuncs:
                - __assert_fail
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:855,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:855,2'
              BranchSideFuncs:
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:860,7'
              BranchSideFuncs:
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:860,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:861,7'
              BranchSideFuncs:
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:870,40'
              BranchSideFuncs:
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:860,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:863,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:870,40'
              BranchSideFuncs:
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:854,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:855,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:863,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:866,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:876,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:878,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:880,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:882,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:884,2'
          Dst:             CommLog_Print
    - functionName:    set_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 581
      functionLinenumberEnd: 780
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         87
      ICount:          544
      EdgeCount:       114
      CyclomaticComplexity: 29
      functionsReached:
        - CommLog_Print
        - GetLastError
        - SetLastError
        - __assert_fail
        - _comm_ioctl_tcsetattr
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:585,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:585,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:586,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:586,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:586,2'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:588,16'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:588,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:590,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:597,9'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:597,59'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:598,8'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:599,8'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:598,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:599,8'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:605,18'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:599,58'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:600,9'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:609,7'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:597,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:605,18'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:609,7'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:609,57'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:610,7'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:612,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:609,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:612,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:616,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:627,61'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:628,8'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:629,8'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:628,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:629,8'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:635,18'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:629,60'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:630,9'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:639,7'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:627,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:635,18'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:639,7'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:639,59'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:640,7'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:642,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:639,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:642,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:646,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:651,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:654,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:659,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:659,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:662,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:667,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:667,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:670,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:676,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:676,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:679,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:685,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:685,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:688,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:695,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:695,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:697,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:701,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:704,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:706,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:710,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:714,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:717,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:721,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:724,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:726,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:730,19'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:734,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:736,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:742,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:742,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:745,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:753,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:753,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:756,17'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:764,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:764,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:767,17'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:772,28'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:772,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:775,17'
              BranchSideFuncs:
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:779,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:585,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:586,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:588,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:590,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:602,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:632,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:654,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:655,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:662,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:663,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:670,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:671,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:679,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:680,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:688,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:689,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:736,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:737,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:745,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:746,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:755,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:757,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:766,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:768,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:772,6'
          Dst:             _comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:775,17'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:774,3'
          Dst:             CommLog_Print
    - functionName:    get_line_control
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 533
      functionLinenumberEnd: 578
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pLineControl
      BBCount:         23
      ICount:          150
      EdgeCount:       25
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - __assert_fail
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:536,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:536,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:537,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:537,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:537,2'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:539,16'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:539,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:541,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:545,43'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:547,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:549,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:551,26'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:551,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:553,42'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:558,42'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:561,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:564,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:567,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:570,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:573,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:536,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:537,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:539,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:541,3'
          Dst:             SetLastError
    - functionName:    set_line_control
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 530
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pLineControl
      BBCount:         32
      ICount:          248
      EdgeCount:       63
      CyclomaticComplexity: 33
      functionsReached:
        - CommLog_Print
        - GetLastError
        - SetLastError
        - __assert_fail
        - _comm_ioctl_tcsetattr
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:420,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:420,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:421,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:421,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:421,2'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:432,16'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:432,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:434,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:440,10'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:440,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:443,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:447,4'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:451,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:456,18'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:461,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:464,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:468,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:473,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:478,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:482,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:488,18'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:493,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:496,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:501,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:506,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:511,20'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:517,18'
              BranchSideFuncs:
                - CommLog_Print
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:522,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:525,17'
              BranchSideFuncs:
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:529,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:420,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:421,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:432,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:434,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:447,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:455,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:487,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:516,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:522,6'
          Dst:             _comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:525,17'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:524,3'
          Dst:             CommLog_Print
    - functionName:    get_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 413
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         12
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - SetLastError
        - __assert_fail
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:388,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:388,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:389,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:389,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:389,2'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:391,16'
              BranchSideFuncs:
                - tcgetattr
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:391,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:393,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:397,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:388,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:389,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:391,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:393,3'
          Dst:             SetLastError
    - functionName:    set_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 311
      functionLinenumberEnd: 382
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         26
      ICount:          183
      EdgeCount:       32
      CyclomaticComplexity: 8
      functionsReached:
        - CommLog_Print
        - GetLastError
        - SetLastError
        - __assert_fail
        - _comm_ioctl_tcsetattr
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:315,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:315,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:316,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:316,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:316,2'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:318,16'
              BranchSideFuncs:
                - tcgetattr
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:318,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:320,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:335,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:335,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:337,68'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:348,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:348,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:351,17'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:357,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:357,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:360,17'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:365,6'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:365,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:367,22'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:370,33'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:374,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:377,17'
              BranchSideFuncs:
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:381,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:315,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:316,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:318,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:320,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:337,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:338,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:350,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:352,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:359,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:361,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:374,6'
          Dst:             _comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:377,17'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:376,3'
          Dst:             CommLog_Print
    - functionName:    get_properties
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 160
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pProperties
      BBCount:         16
      ICount:          126
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:161,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:161,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:169,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:169,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:169,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:170,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:170,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:172,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:176,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:202,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:204,45'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:207,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:161,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:169,2'
          Dst:             __assert_fail
    - functionName:    get_baud_rate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pBaudRate
      BBCount:         18
      ICount:          108
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - CommLog_Print
        - SetLastError
        - __assert_fail
        - cfgetispeed
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:275,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:275,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - cfgetispeed
                - CommLog_Print
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:276,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - cfgetispeed
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:276,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:276,2'
              BranchSideFuncs:
                - tcgetattr
                - cfgetispeed
                - CommLog_Print
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:278,16'
              BranchSideFuncs:
                - tcgetattr
                - cfgetispeed
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:278,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:280,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:284,17'
              BranchSideFuncs:
                - cfgetispeed
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:286,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:288,18'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:296,16'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:288,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:290,37'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:293,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:275,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:276,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:278,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:280,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:284,17'
          Dst:             cfgetispeed
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:295,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:297,2'
          Dst:             SetLastError
    - functionName:    cfgetispeed
      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:    set_baud_rate
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pBaudRate
      BBCount:         25
      ICount:          148
      EdgeCount:       30
      CyclomaticComplexity: 7
      functionsReached:
        - CommLog_Print
        - GetLastError
        - SetLastError
        - __assert_fail
        - _comm_ioctl_tcsetattr
        - cfgetispeed
        - cfsetspeed
        - tcgetattr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:229,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:229,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:230,2'
              BranchSideFuncs:
                - __assert_fail
                - tcgetattr
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:230,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:230,2'
              BranchSideFuncs:
                - tcgetattr
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:232,16'
              BranchSideFuncs:
                - tcgetattr
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:232,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:235,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:239,11'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:239,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:241,18'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:265,16'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:241,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:243,26'
              BranchSideFuncs:
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:262,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - cfsetspeed
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:244,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:246,72'
              BranchSideFuncs:
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:251,4'
              BranchSideFuncs:
                - cfgetispeed
                - __assert_fail
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:251,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:251,4'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:253,30'
              BranchSideFuncs:
                - _comm_ioctl_tcsetattr
                - GetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_serial_sys.c:253,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:256,19'
              BranchSideFuncs:
                - GetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_serial_sys.c:260,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:229,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:230,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:232,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:235,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:244,8'
          Dst:             cfsetspeed
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:246,5'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:251,4'
          Dst:             cfgetispeed
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:251,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:253,8'
          Dst:             _comm_ioctl_tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:256,19'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:255,5'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:264,2'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_serial_sys.c:266,2'
          Dst:             SetLastError
    - functionName:    cfsetspeed
      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:    SerialSys_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_serial_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1678
      functionLinenumberEnd: 1679
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    8
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_wait_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 177
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         6
      ICount:          62
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SerialSys_s
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:163,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:168,18'
              BranchSideFuncs:
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:176,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:159,30'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:165,3'
          Dst:             CommLog_Print
    - functionName:    get_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SerialSys_s
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:127,30'
          Dst:             SerialSys_s
    - functionName:    set_handflow
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pHandflow
      BBCount:         39
      ICount:          237
      EdgeCount:       51
      CyclomaticComplexity: 14
      functionsReached:
        - CommLog_Print
        - SerialSys_s
        - SetLastError
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:52,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:54,7'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:76,20'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:54,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:56,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:60,7'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:60,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:62,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:66,7'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:66,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:68,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:72,3'
              BranchSideFuncs:
                - SetLastError
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:78,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:118,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:78,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:80,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:84,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:86,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:90,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:90,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:92,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:96,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:96,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:98,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:102,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:102,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:104,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:108,7'
              BranchSideFuncs:
                - SetLastError
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:108,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:110,4'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:114,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:118,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:119,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:121,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:37,30'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:56,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:62,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:68,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:72,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:80,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:86,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:92,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:98,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:104,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:110,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:114,3'
          Dst:             SetLastError
    - functionName:    SerCxSys_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          134
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - SerialSys_s
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:218,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:218,30'
              BranchSideFuncs:
                - SerialSys_s
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:218,30'
              BranchSideFuncs:
                - SerialSys_s
        - Branch String:   'winpr/libwinpr/comm/comm_sercx_sys.c:219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:220,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx_sys.c:222,27'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx_sys.c:218,30'
          Dst:             SerialSys_s
    - functionName:    purge
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 125
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pPurgeMask
      BBCount:         23
      ICount:          114
      EdgeCount:       27
      CyclomaticComplexity: 6
      functionsReached:
        - CommLog_Print
        - SerialSys_s
        - SetLastError
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:102,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:102,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
              BranchSideFuncs:
                - __assert_fail
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:104,2'
              BranchSideFuncs:
                - __assert_fail
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:104,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:104,2'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:108,8'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:108,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:108,49'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:116,8'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:108,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:110,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:116,8'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:116,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:116,49'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:124,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:118,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:124,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:100,30'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:102,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:103,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:104,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:110,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:112,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:118,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:120,3'
          Dst:             SetLastError
    - functionName:    set_wait_mask
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 96
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pWaitMask
      BBCount:         15
      ICount:          89
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - CommLog_Print
        - SerialSys_s
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:76,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:76,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
              BranchSideFuncs:
                - __assert_fail
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:78,2'
              BranchSideFuncs:
                - __assert_fail
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:78,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:78,2'
              BranchSideFuncs:
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:80,18'
              BranchSideFuncs:
                - CommLog_Print
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:87,18'
              BranchSideFuncs:
                - CommLog_Print
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:95,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:74,30'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:76,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:77,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:78,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:84,3'
          Dst:             CommLog_Print
    - functionName:    get_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 51
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         9
      ICount:          40
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:52,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:52,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:52,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:53,2'
          Dst:             __assert_fail
    - functionName:    set_serial_chars
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 43
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pComm
        - pSerialChars
      BBCount:         9
      ICount:          38
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:44,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:44,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:44,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:45,2'
          Dst:             __assert_fail
    - functionName:    SerCx2Sys_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_sercx2_sys.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 210
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         9
      ICount:          130
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - SerCxSys_s
        - SerialSys_s
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:166,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:166,30'
              BranchSideFuncs:
                - SerialSys_s
                - SerCxSys_s
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:166,30'
              BranchSideFuncs:
                - SerialSys_s
                - SerCxSys_s
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:168,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:168,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:169,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_sercx2_sys.c:168,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:169,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_sercx2_sys.c:171,28'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:166,30'
          Dst:             SerialSys_s
        - Src:             'winpr/libwinpr/comm/comm_sercx2_sys.c:167,29'
          Dst:             SerCxSys_s
    - functionName:    NamedPipeGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 217
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         8
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - NamedPipeIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:210,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:211,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:213,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:213,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:214,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:216,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:210,7'
          Dst:             NamedPipeIsHandled
    - functionName:    NamedPipeIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:203,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    PipeWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         30
      ICount:          139
      EdgeCount:       37
      CyclomaticComplexity: 9
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:159,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:164,22'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:159,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:159,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:159,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:159,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:159,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:159,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:169,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:169,31'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - write
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:169,2'
              BranchSideFuncs:
                - __errno_location
                - write
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:169,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:168,21'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:171,7'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:171,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:171,26'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:174,35'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:172,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:174,35'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:159,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:159,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:159,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:160,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:168,15'
          Dst:             write
        - Src:             'winpr/libwinpr/pipe/pipe.c:169,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:171,26'
          Dst:             __errno_location
    - functionName:    PipeRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         34
      ICount:          156
      EdgeCount:       40
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Get
        - __errno_location
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:119,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:121,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:126,22'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:121,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:121,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:121,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:121,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:121,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:121,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:131,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:131,31'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - SetLastError
                - read
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:131,2'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - read
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:131,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:130,20'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:133,6'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:133,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:135,10'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:145,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:137,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:140,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:143,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:145,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:146,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:148,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:121,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:121,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:121,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:122,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:130,15'
          Dst:             read
        - Src:             'winpr/libwinpr/pipe/pipe.c:131,31'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:137,11'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:140,5'
          Dst:             SetLastError
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PipeGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 86
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          38
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PipeIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:89,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:90,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:92,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:89,7'
          Dst:             PipeIsHandled
    - functionName:    PipeIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 81
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:82,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    PipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 110
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         9
      ICount:          55
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - PipeIsHandled
        - close
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:99,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:100,3'
              BranchSideFuncs:
                - free
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:102,6'
              BranchSideFuncs:
                - free
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:102,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:104,9'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:108,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:99,7'
          Dst:             PipeIsHandled
        - Src:             'winpr/libwinpr/pipe/pipe.c:104,3'
          Dst:             close
    - functionName:    GetNamedPipeClientComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 924
      functionLinenumberEnd: 927
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Pipe
        - ClientComputerName
        - ClientComputerNameLength
      BBCount:         15
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:925,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:925,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:925,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:925,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:925,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:925,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:925,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:925,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:925,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:926,2'
          Dst:             SetLastError
    - functionName:    GetNamedPipeClientComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 916
      functionLinenumberEnd: 919
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Pipe
        - ClientComputerName
        - ClientComputerNameLength
      BBCount:         15
      ICount:          58
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:917,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:917,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:917,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:917,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:917,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:917,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:917,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:917,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:917,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:918,2'
          Dst:             SetLastError
    - functionName:    ImpersonateNamedPipeClient
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 908
      functionLinenumberEnd: 911
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
      BBCount:         15
      ICount:          52
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:909,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:909,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:909,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:909,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:909,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:909,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:909,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:909,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:909,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:910,2'
          Dst:             SetLastError
    - functionName:    SetNamedPipeHandleState
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 868
      functionLinenumberEnd: 905
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
        - lpMode
        - lpMaxCollectionCount
        - lpCollectDataTimeout
      BBCount:         25
      ICount:          151
      EdgeCount:       33
      CyclomaticComplexity: 10
      functionsReached:
        - fcntl64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:874,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:876,29'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:896,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:877,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:877,35'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:877,58'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:879,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:880,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:882,17'
              BranchSideFuncs:
                - fcntl64
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:884,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:885,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:887,7'
              BranchSideFuncs:
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:887,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:888,13'
              BranchSideFuncs:
                - fcntl64
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:890,13'
              BranchSideFuncs:
                - fcntl64
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:892,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:893,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:894,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:896,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:898,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:900,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:900,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:902,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:904,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:882,11'
          Dst:             fcntl64
        - Src:             'winpr/libwinpr/pipe/pipe.c:892,7'
          Dst:             fcntl64
    - functionName:    WaitNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 860
      functionLinenumberEnd: 863
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpNamedPipeName
        - nTimeOut
      BBCount:         15
      ICount:          55
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:861,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:861,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:861,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:861,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:861,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:861,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:861,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:861,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:861,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:862,2'
          Dst:             SetLastError
    - functionName:    WaitNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 857
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpNamedPipeName
        - nTimeOut
      BBCount:         17
      ICount:          101
      EdgeCount:       22
      CyclomaticComplexity: 7
      functionsReached:
        - GetNamedPipeUnixDomainSocketFilePathA
        - Sleep
        - winpr_PathFileExists
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:828,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:829,3'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - winpr_PathFileExists
                - free
                - Sleep
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:831,53'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - winpr_PathFileExists
                - free
                - Sleep
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:833,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:834,3'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:836,6'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:836,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:837,12'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:839,12'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
                - Sleep
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:843,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:845,9'
              BranchSideFuncs:
                - Sleep
                - winpr_PathFileExists
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:855,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:848,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:843,2'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:850,11'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:831,15'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:843,10'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:845,3'
          Dst:             Sleep
    - functionName:    TransactNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
        - lpInBuffer
        - nInBufferSize
        - lpOutBuffer
        - nOutBufferSize
        - lpBytesRead
        - lpOverlapped
      BBCount:         15
      ICount:          70
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:816,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:816,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:816,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:816,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:816,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:816,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:816,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:816,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:816,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:817,2'
          Dst:             SetLastError
    - functionName:    PeekNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 806
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
        - lpBuffer
        - nBufferSize
        - lpBytesRead
        - lpTotalBytesAvail
        - lpBytesLeftThisMessage
      BBCount:         15
      ICount:          67
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:807,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:807,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:807,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:807,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:807,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:807,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:807,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:807,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:807,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:808,2'
          Dst:             SetLastError
    - functionName:    DisconnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 791
      functionLinenumberEnd: 801
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - close
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:795,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:795,6'
              BranchSideFuncs:
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:797,9'
              BranchSideFuncs:
                - close
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:797,3'
          Dst:             close
    - functionName:    ConnectNamedPipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 739
      functionLinenumberEnd: 788
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hNamedPipe
        - lpOverlapped
      BBCount:         41
      ICount:          193
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Get
        - accept
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:744,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:746,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:751,7'
              BranchSideFuncs:
                - accept
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:746,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:746,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:746,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:746,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:746,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:746,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:751,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:752,3'
              BranchSideFuncs:
                - accept
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:754,34'
              BranchSideFuncs:
                - accept
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:756,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:758,22'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:773,8'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:762,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:764,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:768,26'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:764,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:764,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:764,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:764,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:764,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:764,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:773,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:774,4'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:776,7'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:776,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:777,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:779,30'
              BranchSideFuncs:
                - SetEvent
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:746,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:746,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:746,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:747,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:760,12'
          Dst:             accept
        - Src:             'winpr/libwinpr/pipe/pipe.c:764,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:764,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:764,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:784,3'
          Dst:             SetEvent
    - functionName:    CreateNamedPipeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 735
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
        - dwOpenMode
        - dwPipeMode
        - nMaxInstances
        - nOutBufferSize
        - nInBufferSize
        - nDefaultTimeOut
        - lpSecurityAttributes
      BBCount:         15
      ICount:          73
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:733,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:733,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:733,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:733,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:733,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:733,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:733,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:733,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:733,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:734,2'
          Dst:             SetLastError
    - functionName:    NamedPipeCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 220
      functionLinenumberEnd: 246
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         15
      ICount:          102
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - NamedPipeIsHandled
        - close
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:227,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:228,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:231,6'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:231,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:232,3'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:234,7'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
                - close
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:238,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:239,9'
              BranchSideFuncs:
                - close
                - free
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:241,6'
              BranchSideFuncs:
                - free
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:242,9'
              BranchSideFuncs:
                - close
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:244,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:227,7'
          Dst:             NamedPipeIsHandled
        - Src:             'winpr/libwinpr/pipe/pipe.c:239,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:242,3'
          Dst:             close
    - functionName:    winpr_unref_named_pipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 553
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pNamedPipe
      BBCount:         31
      ICount:          150
      EdgeCount:       35
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Remove
        - ArrayList_Unlock
        - __assert_fail
        - close
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:519,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:520,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:522,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:522,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:522,2'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:523,2'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:523,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:523,2'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:525,17'
              BranchSideFuncs:
                - ArrayList_Lock
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:527,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:530,54'
              BranchSideFuncs:
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Count
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:552,19'
              BranchSideFuncs:
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:531,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:531,3'
              BranchSideFuncs:
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Count
                - ArrayList_GetItem
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:533,15'
              BranchSideFuncs:
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Count
                - ArrayList_GetItem
                - __assert_fail
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:533,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:535,4'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:550,2'
              BranchSideFuncs:
                - ArrayList_Count
                - ArrayList_Unlock
                - ArrayList_GetItem
                - __assert_fail
                - strcmp
                - __assert_fail
                - __assert_fail
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:535,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:535,4'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:536,4'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:536,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:536,4'
              BranchSideFuncs:
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:538,10'
              BranchSideFuncs:
                - ArrayList_Unlock
                - ArrayList_Remove
                - close
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:538,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:542,22'
              BranchSideFuncs:
                - ArrayList_Remove
                - close
                - free
                - free
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:548,4'
              BranchSideFuncs:
                - ArrayList_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:522,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/pipe/pipe.c:523,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/pipe/pipe.c:525,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:527,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:530,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:531,3'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/pipe/pipe.c:533,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:535,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/pipe/pipe.c:536,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/pipe/pipe.c:542,5'
          Dst:             ArrayList_Remove
        - Src:             'winpr/libwinpr/pipe/pipe.c:543,5'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:552,2'
          Dst:             ArrayList_Unlock
    - functionName:    InitWinPRPipeModule
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 459
      functionLinenumberEnd: 465
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_New
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:460,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:460,6'
              BranchSideFuncs:
                - ArrayList_New
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:460,6'
              BranchSideFuncs:
                - ArrayList_New
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:460,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:461,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:463,29'
              BranchSideFuncs:
                - ArrayList_New
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:463,29'
          Dst:             ArrayList_New
    - functionName:    CreateNamedPipeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 558
      functionLinenumberEnd: 727
      functionDepth:   0
      returnType:      'N/A'
      argCount:        8
      argTypes:
        - 'N/A'
        - int
        - int
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
        - dwOpenMode
        - dwPipeMode
        - nMaxInstances
        - nOutBufferSize
        - nInBufferSize
        - nDefaultTimeOut
        - lpSecurityAttributes
      BBCount:         105
      ICount:          575
      EdgeCount:       135
      CyclomaticComplexity: 32
      functionsReached:
        - ArrayList_Append
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock
        - ArrayList_Unlock
        - CreateDirectoryA
        - GetNamedPipeNameWithoutPrefixA
        - GetNamedPipeUnixDomainSocketBaseFilePathA
        - GetNamedPipeUnixDomainSocketFilePathA
        - InitWinPRPipeModule
        - NamedPipeCloseHandle
        - SetLastError
        - UnixChangeFileMode
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Get
        - __errno_location
        - _strdup
        - bind
        - calloc
        - close
        - dup
        - listen
        - snprintf
        - socket
        - strcmp
        - winpr_DeleteFile
        - winpr_PathFileExists
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:566,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:568,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:573,7'
              BranchSideFuncs:
                - InitWinPRPipeModule
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:568,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:568,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:568,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:568,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:568,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:568,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:573,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:574,3'
              BranchSideFuncs:
                - InitWinPRPipeModule
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:576,7'
              BranchSideFuncs:
                - InitWinPRPipeModule
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:576,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:577,3'
              BranchSideFuncs:
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:579,34'
              BranchSideFuncs:
                - calloc
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:581,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:582,3'
              BranchSideFuncs:
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:584,17'
              BranchSideFuncs:
                - ArrayList_Lock
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - _strdup
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeNameWithoutPrefixA
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:589,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:590,3'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:592,64'
              BranchSideFuncs:
                - GetNamedPipeNameWithoutPrefixA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - GetNamedPipeUnixDomainSocketFilePathA
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:592,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:593,3'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:595,71'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:595,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:596,3'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:598,27'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:609,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:612,54'
              BranchSideFuncs:
                - ArrayList_GetItem
                - strcmp
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_Count
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:624,6'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:614,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:616,15'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:621,2'
              BranchSideFuncs:
                - ArrayList_Count
                - dup
                - ArrayList_Unlock
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
                - ArrayList_GetItem
                - strcmp
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:624,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:626,22'
              BranchSideFuncs:
                - GetNamedPipeUnixDomainSocketBaseFilePathA
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:699,29'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:628,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:629,4'
              BranchSideFuncs:
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:631,29'
              BranchSideFuncs:
                - winpr_PathFileExists
                - CreateDirectoryA
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:631,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:633,26'
              BranchSideFuncs:
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:642,8'
              BranchSideFuncs:
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:633,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:635,10'
              BranchSideFuncs:
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:639,23'
              BranchSideFuncs:
                - UnixChangeFileMode
                - free
                - winpr_PathFileExists
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - winpr_DeleteFile
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:644,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:645,21'
              BranchSideFuncs:
                - winpr_DeleteFile
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:647,19'
              BranchSideFuncs:
                - socket
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:647,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:649,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:655,5'
              BranchSideFuncs:
                - snprintf
                - bind
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:650,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:650,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:650,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:650,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:650,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:650,4'
              BranchSideFuncs:
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:658,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:660,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:666,14'
              BranchSideFuncs:
                - listen
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
                - WLog_Get
                - WLog_IsLevelActive
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:661,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:661,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:661,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:661,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:661,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:661,4'
              BranchSideFuncs:
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:666,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:668,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:674,22'
              BranchSideFuncs:
                - UnixChangeFileMode
                - malloc
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - _strdup
                - free
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:669,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:669,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:669,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:669,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:669,4'
              BranchSideFuncs:
                - __errno_location
                - winpr_strerror
                - WLog_PrintMessage
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:669,4'
              BranchSideFuncs:
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:676,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:677,4'
              BranchSideFuncs:
                - _strdup
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:679,36'
              BranchSideFuncs:
                - _strdup
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - ArrayList_Append
                - free
                - free
                - dup
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:679,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:681,9'
              BranchSideFuncs:
                - ArrayList_Append
                - free
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - dup
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:685,26'
              BranchSideFuncs:
                - ArrayList_Append
                - free
                - free
                - NamedPipeCloseHandle
                - ArrayList_Unlock
                - close
                - dup
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:688,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:690,9'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:697,2'
              BranchSideFuncs:
                - dup
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:705,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:714,2'
              BranchSideFuncs:
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:717,19'
              BranchSideFuncs:
                - ArrayList_Unlock
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:722,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:723,9'
              BranchSideFuncs:
                - close
                - ArrayList_Unlock
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:725,19'
              BranchSideFuncs:
                - ArrayList_Unlock
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:568,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:568,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:568,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:569,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:576,7'
          Dst:             InitWinPRPipeModule
        - Src:             'winpr/libwinpr/pipe/pipe.c:579,34'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:584,2'
          Dst:             ArrayList_Lock
        - Src:             'winpr/libwinpr/pipe/pipe.c:585,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:589,27'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:592,33'
          Dst:             GetNamedPipeNameWithoutPrefixA
        - Src:             'winpr/libwinpr/pipe/pipe.c:595,33'
          Dst:             GetNamedPipeUnixDomainSocketFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:609,33'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/pipe/pipe.c:612,36'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/pipe/pipe.c:614,8'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/pipe/pipe.c:628,22'
          Dst:             GetNamedPipeUnixDomainSocketBaseFilePathA
        - Src:             'winpr/libwinpr/pipe/pipe.c:631,8'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:633,9'
          Dst:             CreateDirectoryA
        - Src:             'winpr/libwinpr/pipe/pipe.c:639,4'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:644,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/pipe/pipe.c:645,4'
          Dst:             winpr_DeleteFile
        - Src:             'winpr/libwinpr/pipe/pipe.c:647,19'
          Dst:             socket
        - Src:             'winpr/libwinpr/pipe/pipe.c:650,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:650,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:650,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:650,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:650,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:656,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/pipe/pipe.c:658,7'
          Dst:             bind
        - Src:             'winpr/libwinpr/pipe/pipe.c:661,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:661,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:661,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:661,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:661,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:666,7'
          Dst:             listen
        - Src:             'winpr/libwinpr/pipe/pipe.c:669,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:669,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:669,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:669,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/pipe/pipe.c:669,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:674,3'
          Dst:             UnixChangeFileMode
        - Src:             'winpr/libwinpr/pipe/pipe.c:679,28'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/pipe/pipe.c:688,8'
          Dst:             ArrayList_Append
        - Src:             'winpr/libwinpr/pipe/pipe.c:699,25'
          Dst:             dup
        - Src:             'winpr/libwinpr/pipe/pipe.c:717,2'
          Dst:             ArrayList_Unlock
        - Src:             'winpr/libwinpr/pipe/pipe.c:720,2'
          Dst:             NamedPipeCloseHandle
        - Src:             'winpr/libwinpr/pipe/pipe.c:723,3'
          Dst:             close
        - Src:             'winpr/libwinpr/pipe/pipe.c:725,2'
          Dst:             ArrayList_Unlock
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - _handle
        - _type
        - _mode
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    dup
      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:    NamedPipeRead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 250
      functionLinenumberEnd: 339
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         46
      ICount:          230
      EdgeCount:       57
      CyclomaticComplexity: 13
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Get
        - __errno_location
        - read
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:255,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:257,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:262,28'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - __errno_location
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:257,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:257,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:257,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:257,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:257,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:257,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:264,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:266,7'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:301,8'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:266,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:267,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:269,3'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:272,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:272,32'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - read
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:272,3'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - read
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:272,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:271,21'
              BranchSideFuncs:
                - read
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:274,7'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:274,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:276,4'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:279,12'
              BranchSideFuncs:
                - __errno_location
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:283,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:286,6'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:290,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:295,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:296,34'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:297,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:301,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:302,4'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:304,7'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:304,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:305,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:307,24'
              BranchSideFuncs:
                - SetEvent
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:257,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:257,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:257,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:258,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:271,16'
          Dst:             read
        - Src:             'winpr/libwinpr/pipe/pipe.c:272,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:276,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:283,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:286,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:290,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:334,3'
          Dst:             SetEvent
    - functionName:    NamedPipeWrite
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 343
      functionLinenumberEnd: 434
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Object
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         40
      ICount:          215
      EdgeCount:       49
      CyclomaticComplexity: 11
      functionsReached:
        - SetEvent
        - SetLastError
        - WLog_Get
        - __errno_location
        - write
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:348,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:350,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:355,28'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:350,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:350,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:350,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:350,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:350,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:350,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:357,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:359,7'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:389,8'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:359,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:360,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:362,3'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:365,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:365,32'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - write
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:365,3'
              BranchSideFuncs:
                - __errno_location
                - write
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:365,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:364,22'
              BranchSideFuncs:
                - write
                - __errno_location
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:367,7'
              BranchSideFuncs:
                - __errno_location
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:367,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:369,5'
              BranchSideFuncs:
                - __errno_location
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:383,36'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:371,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:374,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:379,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:389,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:390,4'
              BranchSideFuncs:
                - SetEvent
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:392,7'
              BranchSideFuncs:
                - SetEvent
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:392,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:393,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:395,24'
              BranchSideFuncs:
                - SetEvent
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:350,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:350,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:350,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:351,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/pipe/pipe.c:364,16'
          Dst:             write
        - Src:             'winpr/libwinpr/pipe/pipe.c:365,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:371,12'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/pipe/pipe.c:429,3'
          Dst:             SetEvent
    - functionName:    CreatePipe
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/pipe/pipe.c'
      linkageType:     InternalLinkage
      functionLinenumber: 473
      functionLinenumberEnd: 509
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hReadPipe
        - hWritePipe
        - lpPipeAttributes
        - nSize
      BBCount:         23
      ICount:          142
      EdgeCount:       28
      CyclomaticComplexity: 7
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Get
        - calloc
        - pipe
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:484,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:486,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:490,27'
              BranchSideFuncs:
                - calloc
                - calloc
                - free
                - free
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:486,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:486,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:486,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:486,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:486,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:486,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:493,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:493,21'
              BranchSideFuncs:
                - free
                - free
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:495,8'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/pipe/pipe.c:493,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:495,8'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
            - BranchSide:      'winpr/libwinpr/pipe/pipe.c:500,18'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
                - WINPR_HANDLE_SET_TYPE_AND_MODE.2512
      Callsites:
        - Src:             'winpr/libwinpr/pipe/pipe.c:484,6'
          Dst:             pipe
        - Src:             'winpr/libwinpr/pipe/pipe.c:486,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/pipe/pipe.c:486,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/pipe/pipe.c:486,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/pipe/pipe.c:490,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:491,28'
          Dst:             calloc
        - Src:             'winpr/libwinpr/pipe/pipe.c:502,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/pipe/pipe.c:505,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    PopEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 480
      functionLinenumberEnd: 488
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         4
      ICount:          32
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:485,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:485,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:486,20'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PushEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 474
      functionLinenumberEnd: 477
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - Entry
      BBCount:         1
      ICount:          20
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    AppendTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 464
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - ListToAppend
      BBCount:         1
      ICount:          38
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RemoveTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 451
      functionLinenumberEnd: 460
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InsertTailList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 440
      functionLinenumberEnd: 448
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - Entry
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RemoveHeadList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 427
      functionLinenumberEnd: 436
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         1
      ICount:          30
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InsertHeadList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 416
      functionLinenumberEnd: 424
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - Entry
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    RemoveEntryList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 403
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Entry
      BBCount:         1
      ICount:          33
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsListEmpty
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 398
      functionLinenumberEnd: 399
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InitializeListHead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 393
      functionLinenumberEnd: 395
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         1
      ICount:          14
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedCompareExchangePointer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 284
      functionLinenumberEnd: 288
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - Destination
        - Exchange
        - Comperand
      BBCount:         1
      ICount:          21
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedCompareExchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 275
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - Destination
        - Exchange
        - Comperand
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedExchangeAdd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 259
      functionLinenumberEnd: 263
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Addend
        - Value
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedExchange
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 247
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - Target
        - Value
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedDecrement
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 235
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Addend
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedIncrement
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 223
      functionLinenumberEnd: 227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - Addend
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    QueryDepthSList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 218
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedFlushSList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 211
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         16
      ICount:          89
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - InterlockedCompareExchange64
        - QueryDepthSList
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:168,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:169,3'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:192,22'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:199,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:200,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:201,17'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:201,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:202,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:203,7'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:203,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:204,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:205,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:205,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:196,10'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:209,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:168,7'
          Dst:             QueryDepthSList
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:205,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InterlockedCompareExchange64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 369
      functionLinenumberEnd: 373
      functionDepth:   0
      returnType:      size_t
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - Destination
        - Exchange
        - Comperand
      BBCount:         1
      ICount:          18
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedPopEntrySList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 109
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         16
      ICount:          104
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - InterlockedCompareExchange64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:143,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:144,4'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:146,27'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:150,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:151,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:152,17'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:152,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:153,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:154,7'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:154,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:155,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:156,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:156,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:139,10'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:160,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:156,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InterlockedPushListSListEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ListHead
        - List
        - ListEnd
        - Count
      BBCount:         1
      ICount:          16
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    InterlockedPushEntrySList
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 95
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
        - ListEntry
      BBCount:         14
      ICount:          98
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - InterlockedCompareExchange64
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:83,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:84,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:85,17'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:85,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:86,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:87,7'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:87,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:88,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:89,2'
              BranchSideFuncs:
                - InterlockedCompareExchange64
        - Branch String:   'winpr/libwinpr/interlocked/interlocked.c:89,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:79,10'
              BranchSideFuncs:
                - InterlockedCompareExchange64
            - BranchSide:      'winpr/libwinpr/interlocked/interlocked.c:93,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/interlocked/interlocked.c:89,11'
          Dst:             InterlockedCompareExchange64
    - functionName:    InitializeSListHead
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/interlocked/interlocked.c'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 44
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ListHead
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetEnvironmentVariableX
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 705
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpName
        - lpBuffer
        - nSize
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvironmentVariableA
      functionUses:    4
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:705,9'
          Dst:             GetEnvironmentVariableA
    - functionName:    GetEnvironmentVariableA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 134
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpName
        - lpBuffer
        - nSize
      BBCount:         11
      ICount:          81
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - SetLastError
        - getenv
        - strlen
      functionUses:    17
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:141,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:143,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:147,18'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:149,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:149,32'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:150,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:149,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:150,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:152,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:139,8'
          Dst:             getenv
        - Src:             'winpr/libwinpr/environment/environment.c:143,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/environment/environment.c:147,11'
          Dst:             strlen
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    EnvironmentBlockToEnvpA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 592
      functionLinenumberEnd: 638
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszEnvironmentBlock
      BBCount:         26
      ICount:          185
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - _strdup
        - calloc
        - strlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:600,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:601,3'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:603,13'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:605,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:605,17'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:605,2'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:605,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:607,19'
              BranchSideFuncs:
                - strlen
                - calloc
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:612,8'
              BranchSideFuncs:
                - calloc
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:616,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:617,3'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:618,2'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:620,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:620,17'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:620,2'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:620,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:622,19'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:637,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:624,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:626,15'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:633,9'
              BranchSideFuncs:
                - strlen
                - _strdup
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:626,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:628,10'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:630,9'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:607,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:615,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:622,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:623,17'
          Dst:             _strdup
    - functionName:    SetEnvironmentVariableEBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 550
      functionLinenumberEnd: 589
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - envBlock
        - lpName
        - lpValue
      BBCount:         13
      ICount:          113
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - MergeEnvironmentStrings
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:555,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:556,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
                - strlen
                - strlen
                - malloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/environment/environment.c:558,6'
              BranchSideFuncs:
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
                - strlen
                - strlen
                - malloc
                - snprintf
        - Branch String:   'winpr/libwinpr/environment/environment.c:558,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:560,20'
              BranchSideFuncs:
                - strlen
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:570,19'
              BranchSideFuncs:
                - strlen
                - malloc
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:563,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:564,4'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:566,19'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:573,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:574,4'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:576,19'
              BranchSideFuncs:
                - snprintf
                - MergeEnvironmentStrings
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:560,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:560,30'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:566,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/environment/environment.c:570,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:576,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/environment/environment.c:581,10'
          Dst:             MergeEnvironmentStrings
    - functionName:    MergeEnvironmentStrings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 310
      functionLinenumberEnd: 486
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - original
        - merge
      BBCount:         66
      ICount:          535
      EdgeCount:       89
      CyclomaticComplexity: 25
      functionsReached:
        - calloc
        - realloc
        - strlen
        - strncmp
        - strstr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:327,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:328,3'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:330,20'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:334,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:334,18'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:334,2'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:334,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:336,19'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:358,9'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:338,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:340,17'
              BranchSideFuncs:
                - realloc
                - free
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:353,37'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:345,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:347,17'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:350,19'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:363,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:365,15'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:369,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:371,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:371,33'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:371,2'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:371,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:373,23'
              BranchSideFuncs:
                - strlen
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:451,14'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:376,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:378,24'
              BranchSideFuncs:
                - realloc
                - free
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:390,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:381,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:383,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:387,27'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:394,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:396,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:440,7'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:396,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:397,5'
              BranchSideFuncs:
                - strlen
                - strstr
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:399,25'
              BranchSideFuncs:
                - strlen
                - strstr
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:402,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:403,5'
              BranchSideFuncs:
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:405,16'
              BranchSideFuncs:
                - strncmp
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:405,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:408,11'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:438,3'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:408,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:411,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:415,6'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:415,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:417,27'
              BranchSideFuncs:
                - realloc
                - free
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:431,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:421,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:423,20'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:427,30'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:440,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:442,4'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:447,12'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
                - strlen
                - strlen
                - strstr
                - strncmp
                - realloc
                - free
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:451,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:453,8'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:481,2'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:453,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:454,4'
              BranchSideFuncs:
                - strlen
                - free
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:456,24'
              BranchSideFuncs:
                - strlen
                - free
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:458,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:460,24'
              BranchSideFuncs:
                - realloc
                - free
                - free
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:473,9'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:463,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:465,17'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:470,27'
              BranchSideFuncs:
                - free
                - strlen
                - realloc
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:325,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:336,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:343,28'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:361,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:374,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:379,21'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:399,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:400,18'
          Dst:             strstr
        - Src:             'winpr/libwinpr/environment/environment.c:405,8'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/environment/environment.c:419,17'
          Dst:             realloc
        - Src:             'winpr/libwinpr/environment/environment.c:456,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:461,21'
          Dst:             realloc
    - 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:    5
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetEnvironmentVariableEBA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 489
      functionLinenumberEnd: 547
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - envBlock
        - lpName
        - lpBuffer
        - nSize
      BBCount:         33
      ICount:          212
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - strlen
        - strncmp
        - strstr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:498,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:498,25'
              BranchSideFuncs:
                - strlen
                - strlen
                - strlen
                - strstr
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:499,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:498,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:499,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:501,24'
              BranchSideFuncs:
                - strlen
                - strlen
                - strlen
                - strstr
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:503,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:504,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:506,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:506,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:506,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:506,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:506,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:508,20'
              BranchSideFuncs:
                - strlen
                - strstr
                - strncmp
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:534,7'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:511,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:514,4'
              BranchSideFuncs:
                - strncmp
                - strlen
                - strlen
                - strstr
            - BranchSide:      'winpr/libwinpr/environment/environment.c:517,14'
              BranchSideFuncs:
                - strncmp
                - strlen
                - strlen
                - strstr
        - Branch String:   'winpr/libwinpr/environment/environment.c:519,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:521,14'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - strncmp
            - BranchSide:      'winpr/libwinpr/environment/environment.c:525,15'
              BranchSideFuncs:
                - strncmp
                - strlen
                - strlen
                - strstr
        - Branch String:   'winpr/libwinpr/environment/environment.c:525,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:527,10'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:531,13'
              BranchSideFuncs:
                - strlen
                - strlen
                - strstr
                - strncmp
        - Branch String:   'winpr/libwinpr/environment/environment.c:534,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:535,3'
              BranchSideFuncs:
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:537,19'
              BranchSideFuncs:
                - strlen
        - Branch String:   'winpr/libwinpr/environment/environment.c:538,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:539,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:541,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:541,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:541,33'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:542,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:541,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:542,17'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:544,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:501,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:508,13'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:509,17'
          Dst:             strstr
        - Src:             'winpr/libwinpr/environment/environment.c:525,7'
          Dst:             strncmp
        - Src:             'winpr/libwinpr/environment/environment.c:537,12'
          Dst:             strlen
    - functionName:    FreeEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 303
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszEnvironmentBlock
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    FreeEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpszEnvironmentBlock
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ExpandEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 291
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpSrc
        - lpDst
        - nSize
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ExpandEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 286
      functionLinenumberEnd: 287
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpSrc
        - lpDst
        - nSize
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 281
      functionLinenumberEnd: 282
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - NewEnvironment
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetEnvironmentStringsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 276
      functionLinenumberEnd: 277
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - NewEnvironment
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetEnvironmentStringsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 271
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetEnvironmentStrings
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 215
      functionLinenumberEnd: 268
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         14
      ICount:          134
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - calloc
        - realloc
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:217,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:217,8'
              BranchSideFuncs:
                - calloc
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:217,8'
              BranchSideFuncs:
                - calloc
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:229,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:230,3'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:232,2'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:232,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:234,20'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:262,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:236,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:238,10'
              BranchSideFuncs:
                - realloc
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/environment/environment.c:253,9'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:243,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:245,10'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:249,27'
              BranchSideFuncs:
                - strlen
                - realloc
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:228,31'
          Dst:             calloc
        - Src:             'winpr/libwinpr/environment/environment.c:234,12'
          Dst:             strlen
        - Src:             'winpr/libwinpr/environment/environment.c:242,20'
          Dst:             realloc
    - functionName:    SetEnvironmentVariableW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 192
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
        - lpValue
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetEnvironmentVariableA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 169
      functionLinenumberEnd: 189
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
        - lpValue
      BBCount:         13
      ICount:          61
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - setenv
        - unsetenv
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:172,3'
              BranchSideFuncs:
                - unsetenv
                - setenv
            - BranchSide:      'winpr/libwinpr/environment/environment.c:174,6'
              BranchSideFuncs:
                - unsetenv
                - setenv
        - Branch String:   'winpr/libwinpr/environment/environment.c:174,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:176,19'
              BranchSideFuncs:
                - setenv
            - BranchSide:      'winpr/libwinpr/environment/environment.c:181,21'
              BranchSideFuncs:
                - unsetenv
        - Branch String:   'winpr/libwinpr/environment/environment.c:176,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:177,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:178,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/environment/environment.c:181,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/environment/environment.c:182,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:176,12'
          Dst:             setenv
        - Src:             'winpr/libwinpr/environment/environment.c:181,12'
          Dst:             unsetenv
    - functionName:    setenv
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    unsetenv
      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:    GetEnvironmentVariableW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpName
        - lpBuffer
        - nSize
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - SetLastError
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:164,2'
          Dst:             SetLastError
    - functionName:    NeedCurrentDirectoryForExePathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 125
      functionLinenumberEnd: 126
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ExeName
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    NeedCurrentDirectoryForExePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 121
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - ExeName
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetCommandLineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 115
      functionLinenumberEnd: 116
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetCommandLineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SearchPathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 106
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPath
        - lpFileName
        - lpExtension
        - nBufferLength
        - lpBuffer
        - lpFilePart
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SearchPathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 99
      functionLinenumberEnd: 100
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPath
        - lpFileName
        - lpExtension
        - nBufferLength
        - lpBuffer
        - lpFilePart
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetCurrentDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 93
      functionLinenumberEnd: 94
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SetCurrentDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 88
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetCurrentDirectoryW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 83
      functionLinenumberEnd: 84
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nBufferLength
        - lpBuffer
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetCurrentDirectoryA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/environment/environment.c'
      linkageType:     InternalLinkage
      functionLinenumber: 45
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - nBufferLength
        - lpBuffer
      BBCount:         15
      ICount:          103
      EdgeCount:       20
      CyclomaticComplexity: 7
      functionsReached:
        - getcwd
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/environment/environment.c:51,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:52,3'
              BranchSideFuncs:
                - strlen
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:54,18'
              BranchSideFuncs:
                - strlen
                - free
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:56,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:56,31'
              BranchSideFuncs:
                - free
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:64,7'
              BranchSideFuncs:
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:56,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:58,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:64,7'
              BranchSideFuncs:
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:64,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:66,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:70,8'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/environment/environment.c:70,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/environment/environment.c:72,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/environment/environment.c:76,10'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/environment/environment.c:49,8'
          Dst:             getcwd
        - Src:             'winpr/libwinpr/environment/environment.c:54,11'
          Dst:             strlen
    - functionName:    getcwd
      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:    concat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1097
      functionLinenumberEnd: 1105
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - path
        - pathlen
        - name
        - namelen
      BBCount:         6
      ICount:          55
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - _wcsncat
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1099,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1100,3'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/path.c:1102,11'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1098,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1102,2'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/path.c:1103,2'
          Dst:             _wcsncat
    - functionName:    winpr_RemoveDirectory_RecursiveW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1181
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         47
      ICount:          273
      EdgeCount:       63
      CyclomaticComplexity: 18
      functionsReached:
        - DeleteFileW
        - FindClose
        - FindFirstFileW
        - FindNextFileW
        - InitializeConstWCharFromUtf8
        - NativePathCchAppendW
        - RemoveDirectoryW
        - _wcslen
        - _wcsncat
        - _wcsnlen
        - calloc
        - concat
        - winpr_RemoveDirectory_RecursiveW
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1122,3'
              BranchSideFuncs:
                - _wcslen
                - calloc
                - _wcsncat
                - InitializeConstWCharFromUtf8
                - NativePathCchAppendW
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1124,37'
              BranchSideFuncs:
                - _wcslen
                - calloc
                - _wcsncat
                - InitializeConstWCharFromUtf8
                - NativePathCchAppendW
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1128,3'
              BranchSideFuncs:
                - _wcsncat
                - InitializeConstWCharFromUtf8
                - NativePathCchAppendW
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1129,11'
              BranchSideFuncs:
                - _wcsncat
                - InitializeConstWCharFromUtf8
                - NativePathCchAppendW
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1135,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1136,3'
              BranchSideFuncs:
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1138,19'
              BranchSideFuncs:
                - FindFirstFileW
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1141,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1142,3'
              BranchSideFuncs:
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1144,6'
              BranchSideFuncs:
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1150,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1150,33'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1151,8'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1150,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1151,8'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1153,4'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
        - Branch String:   'winpr/libwinpr/path/path.c:1151,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1151,33'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1156,28'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1151,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1151,69'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1156,28'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1150,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1153,4'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1156,28'
              BranchSideFuncs:
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1157,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1158,4'
              BranchSideFuncs:
                - DeleteFileW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1160,20'
              BranchSideFuncs:
                - DeleteFileW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1160,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1161,43'
              BranchSideFuncs:
                - winpr_RemoveDirectory_RecursiveW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1163,22'
              BranchSideFuncs:
                - DeleteFileW
                - free
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
        - Branch String:   'winpr/libwinpr/path/path.c:1167,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1168,4'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
            - BranchSide:      'winpr/libwinpr/path/path.c:1169,2'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
                - FindNextFileW
        - Branch String:   'winpr/libwinpr/path/path.c:1169,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1169,32'
              BranchSideFuncs:
                - FindNextFileW
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1169,2'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
                - _wcsnlen
                - concat
                - DeleteFileW
                - free
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
        - Branch String:   'winpr/libwinpr/path/path.c:1169,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1148,44'
              BranchSideFuncs:
                - _wcsnlen
                - concat
                - FindClose
                - free
                - DeleteFileW
                - free
                - RemoveDirectoryW
                - FindNextFileW
                - winpr_RemoveDirectory_RecursiveW
            - BranchSide:      'winpr/libwinpr/path/path.c:1171,6'
              BranchSideFuncs:
                - FindClose
                - free
                - RemoveDirectoryW
        - Branch String:   'winpr/libwinpr/path/path.c:1171,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1171,6'
              BranchSideFuncs:
                - RemoveDirectoryW
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1173,25'
              BranchSideFuncs:
                - RemoveDirectoryW
                - FindClose
                - free
        - Branch String:   'winpr/libwinpr/path/path.c:1173,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1174,8'
              BranchSideFuncs:
                - FindClose
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1175,2'
              BranchSideFuncs:
                - FindClose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1124,29'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/path.c:1126,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/path.c:1129,2'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/path.c:1132,22'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1133,21'
          Dst:             NativePathCchAppendW
        - Src:             'winpr/libwinpr/path/path.c:1139,8'
          Dst:             FindFirstFileW
        - Src:             'winpr/libwinpr/path/path.c:1148,22'
          Dst:             _wcsnlen
        - Src:             'winpr/libwinpr/path/path.c:1156,21'
          Dst:             concat
        - Src:             'winpr/libwinpr/path/path.c:1161,10'
          Dst:             winpr_RemoveDirectory_RecursiveW
        - Src:             'winpr/libwinpr/path/path.c:1163,10'
          Dst:             DeleteFileW
        - Src:             'winpr/libwinpr/path/path.c:1169,18'
          Dst:             FindNextFileW
        - Src:             'winpr/libwinpr/path/path.c:1173,8'
          Dst:             RemoveDirectoryW
        - Src:             'winpr/libwinpr/path/path.c:1178,2'
          Dst:             FindClose
    - functionName:    NativePathCchAppendW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
      BBCount:         42
      ICount:          266
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:18,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:19,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:21,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:21,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:22,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:24,6'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:24,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:24,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:25,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:24,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:25,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:27,26'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:33,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:33,23'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:33,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:35,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:35,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:37,11'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:42,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,30'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:45,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,67'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:53,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:45,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:53,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:45,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:47,11'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:52,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:55,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:57,16'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:64,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:27,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:28,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:39,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:39,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:49,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:49,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:60,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:60,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:61,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:61,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:66,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    HRESULT_FROM_WIN32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/error.h'
      linkageType:     InternalLinkage
      functionLinenumber: 156
      functionLinenumberEnd: 161
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - x
      BBCount:         4
      ICount:          34
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    25
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/error.h:158,6'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/error.h:159,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/error.h:160,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_RemoveDirectory_RecursiveA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1108
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ConvertUtf8ToWCharAlloc
        - winpr_RemoveDirectory_RecursiveW
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1110,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1111,3'
              BranchSideFuncs:
                - winpr_RemoveDirectory_RecursiveW
                - free
            - BranchSide:      'winpr/libwinpr/path/path.c:1112,13'
              BranchSideFuncs:
                - winpr_RemoveDirectory_RecursiveW
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1109,16'
          Dst:             ConvertUtf8ToWCharAlloc
        - Src:             'winpr/libwinpr/path/path.c:1112,18'
          Dst:             winpr_RemoveDirectory_RecursiveW
    - functionName:    GetKnownPathIdString
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1076
      functionLinenumberEnd: 1094
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - id
      BBCount:         9
      ICount:          48
      EdgeCount:       16
      CyclomaticComplexity: 9
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1077,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1080,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1082,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1084,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1086,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1088,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1090,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1092,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathGetSharedLibraryExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1004
      functionLinenumberEnd: 1073
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - dwFlags
      BBCount:         24
      ICount:          146
      EdgeCount:       33
      CyclomaticComplexity: 11
      functionsReached:
        - InitializeConstWCharFromUtf8
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:1019,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1021,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1045,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1021,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1023,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1034,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1023,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1024,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1026,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1026,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1027,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1029,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1029,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1030,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1031,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1034,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1035,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1037,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1037,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1038,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1040,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1040,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1041,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:1045,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:1055,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:1068,10'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:1006,47'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1009,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1010,49'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1013,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1015,6'
          Dst:             InitializeConstWCharFromUtf8
        - Src:             'winpr/libwinpr/path/path.c:1017,6'
          Dst:             InitializeConstWCharFromUtf8
    - functionName:    PathGetSharedLibraryExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 946
      functionLinenumberEnd: 1001
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - dwFlags
      BBCount:         22
      ICount:          107
      EdgeCount:       30
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:947,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:949,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:973,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:949,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:951,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:962,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:951,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:952,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:954,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:954,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:955,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:957,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:957,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:958,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:959,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:962,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:963,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:965,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:965,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:966,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:968,8'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:968,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:969,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:973,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:983,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:996,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathGetSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 912
      functionLinenumberEnd: 932
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - dwFlags
      BBCount:         13
      ICount:          63
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:922,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:923,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:925,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:925,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:926,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:927,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:927,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:928,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:929,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathGetSeparatorA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 908
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - dwFlags
      BBCount:         13
      ICount:          57
      EdgeCount:       16
      CyclomaticComplexity: 5
      functionsReached: []
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:898,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:899,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:901,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:901,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:902,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:903,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:903,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:904,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:905,11'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchConvertStyleW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 835
      functionLinenumberEnd: 888
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - dwFlags
      BBCount:         32
      ICount:          159
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:836,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:838,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:844,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:838,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:840,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:843,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:840,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:841,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:842,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:844,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:846,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:852,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:846,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:848,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:851,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:848,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:849,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:850,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:852,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:868,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:884,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:868,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:870,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:880,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:870,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:871,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:872,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchConvertStyleA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 832
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - dwFlags
      BBCount:         32
      ICount:          159
      EdgeCount:       40
      CyclomaticComplexity: 10
      functionsReached: []
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:786,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:788,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:794,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:788,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:790,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:793,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:790,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:791,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:792,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:794,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:796,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:802,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:796,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:798,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:801,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:798,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:799,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:800,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:802,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:815,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:828,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:815,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:817,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:824,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:817,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:818,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:819,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchRemoveFileSpecW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 771
      functionLinenumberEnd: 773
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:772,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:772,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:772,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:772,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:772,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:772,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:772,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:772,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:772,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRemoveFileSpecA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 765
      functionLinenumberEnd: 767
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:766,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:766,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:766,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:766,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:766,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:766,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:766,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:766,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:766,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchStripPrefixW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 721
      functionLinenumberEnd: 758
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         33
      ICount:          184
      EdgeCount:       45
      CyclomaticComplexity: 14
      functionsReached:
        - HRESULT_FROM_WIN32
        - IsCharAlphaW
        - _wcslen
        - wmemmove_s
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:724,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:725,3'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:727,6'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:727,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:727,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:728,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:727,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:728,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:730,16'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:730,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:730,40'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:730,14'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:730,60'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:730,64'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:730,14'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:730,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:730,14'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:731,16'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:735,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:737,7'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:757,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:738,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:739,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:741,18'
              BranchSideFuncs:
                - _wcslen
                - IsCharAlphaW
                - wmemmove_s
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:742,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:742,27'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:743,11'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/path.c:742,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:743,11'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/path.c:745,20'
              BranchSideFuncs:
                - IsCharAlphaW
                - wmemmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:745,32'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:745,36'
              BranchSideFuncs:
                - wmemmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:755,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:745,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:747,15'
              BranchSideFuncs:
                - wmemmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:755,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:741,9'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/path.c:743,11'
          Dst:             HRESULT_FROM_WIN32
        - Src:             'winpr/libwinpr/path/path.c:745,7'
          Dst:             IsCharAlphaW
        - Src:             'winpr/libwinpr/path/path.c:747,4'
          Dst:             wmemmove_s
    - functionName:    PathCchStripPrefixA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 718
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         28
      ICount:          154
      EdgeCount:       38
      CyclomaticComplexity: 12
      functionsReached:
        - IsCharAlphaA
        - memmove_s
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:689,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:690,3'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:692,6'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:692,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:692,21'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:693,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:692,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:693,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:695,16'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:695,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:695,40'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:695,14'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:695,60'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:695,64'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:695,14'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:695,83'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:695,14'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:696,16'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:700,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:702,7'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:717,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:702,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:703,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:705,19'
              BranchSideFuncs:
                - IsCharAlphaA
                - memmove_s
        - Branch String:   'winpr/libwinpr/path/path.c:705,31'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:705,35'
              BranchSideFuncs:
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:715,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:705,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:707,14'
              BranchSideFuncs:
                - memmove_s
            - BranchSide:      'winpr/libwinpr/path/path.c:715,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:705,7'
          Dst:             IsCharAlphaA
        - Src:             'winpr/libwinpr/path/path.c:707,4'
          Dst:             memmove_s
    - functionName:    PathCchStripToRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:677,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:677,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:677,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:677,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:677,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:677,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:677,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:677,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:677,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchStripToRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 670
      functionLinenumberEnd: 672
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:671,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:671,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:671,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:671,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:671,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:671,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:671,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:671,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:671,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchSkipRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 660
      functionLinenumberEnd: 662
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - ppszRootEnd
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:661,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:661,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:661,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:661,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:661,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:661,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:661,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:661,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:661,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchSkipRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 654
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - ppszRootEnd
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:655,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:655,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:655,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:655,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:655,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:655,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:655,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:655,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:655,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathIsUNCExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 636
      functionLinenumberEnd: 647
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - ppszServer
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:637,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:638,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:640,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:640,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:640,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:646,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:640,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:642,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:646,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathIsUNCExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 622
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - ppszServer
      BBCount:         9
      ICount:          53
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:623,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:624,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:626,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:626,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:626,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:632,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:626,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:628,18'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:632,2'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathCchIsRootW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 612
      functionLinenumberEnd: 614
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         15
      ICount:          51
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:613,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:613,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:613,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:613,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:613,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:613,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:613,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:613,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:613,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchIsRootA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 606
      functionLinenumberEnd: 608
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         15
      ICount:          51
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:607,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:607,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:607,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:607,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:607,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:607,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:607,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:607,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:607,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRemoveExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 598
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:597,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:597,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:597,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:597,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:597,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:597,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:597,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:597,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:597,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRemoveExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 590
      functionLinenumberEnd: 592
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:591,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:591,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:591,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:591,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:591,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:591,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:591,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:591,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:591,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRenameExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:581,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:581,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:581,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:581,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:581,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:581,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:581,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:581,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:581,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRenameExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 574
      functionLinenumberEnd: 576
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:575,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:575,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:575,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:575,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:575,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:575,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:575,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:575,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:575,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchFindExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 564
      functionLinenumberEnd: 566
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszExt
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:565,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:565,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:565,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:565,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:565,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:565,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:565,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:565,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:565,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchFindExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 522
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszExt
      BBCount:         30
      ICount:          146
      EdgeCount:       40
      CyclomaticComplexity: 12
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:525,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:525,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:526,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:525,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:525,31'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:526,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:525,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:526,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:530,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:530,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:530,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:530,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:530,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:532,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:535,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:535,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:538,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:542,13'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:546,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:548,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:560,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:548,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:550,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:554,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:554,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:554,25'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:555,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:554,35'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:554,40'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:555,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/path.c:554,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:555,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/path.c:557,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    NativePathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         44
      ICount:          275
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:34,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:35,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:37,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:37,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:37,21'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:40,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:40,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:40,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:43,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:43,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:44,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:46,28'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:50,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:51,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:53,17'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:56,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:58,8'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:78,15'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:58,33'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:75,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,16'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:75,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:66,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:67,5'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:69,13'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:85,4'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:87,12'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:88,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:89,13'
              BranchSideFuncs:
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:90,12'
              BranchSideFuncs:
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:46,20'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:47,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:64,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:69,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:70,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:71,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:82,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:87,3'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:89,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:90,3'
          Dst:             _wcsncat
    - functionName:    NativePathAllocCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         44
      ICount:          270
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:111,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:114,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:114,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:114,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:117,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:115,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:117,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:117,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:118,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:120,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:121,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:123,27'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:130,17'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:133,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:135,8'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:153,22'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:135,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:135,33'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:149,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:135,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:138,27'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:149,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:142,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:143,5'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:145,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:157,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:158,4'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:160,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:160,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:161,14'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:163,14'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:123,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:124,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:140,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:145,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:161,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:163,4'
          Dst:             snprintf
    - functionName:    UnixPathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         44
      ICount:          275
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:34,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:35,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:37,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:37,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:37,21'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:40,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:40,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:40,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:43,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:43,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:44,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:46,28'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:50,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:51,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:53,17'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:56,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:58,8'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:78,15'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:58,33'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:75,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,16'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:75,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:66,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:67,5'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:69,13'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:85,4'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:87,12'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:88,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:89,13'
              BranchSideFuncs:
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:90,12'
              BranchSideFuncs:
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:46,20'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:47,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:64,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:69,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:70,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:71,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:82,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:87,3'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:89,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:90,3'
          Dst:             _wcsncat
    - functionName:    UnixPathAllocCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         44
      ICount:          270
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:111,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:114,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:114,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:114,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:117,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:115,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:117,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:117,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:118,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:120,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:121,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:123,27'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:130,17'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:133,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:135,8'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:153,22'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:135,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:135,33'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:149,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:135,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:138,27'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:149,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:142,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:143,5'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:145,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:157,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:158,4'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:160,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:160,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:161,14'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:163,14'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:123,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:124,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:140,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:145,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:161,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:163,4'
          Dst:             snprintf
    - functionName:    PathAllocCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 25
      functionLinenumberEnd: 97
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         44
      ICount:          275
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - _wcslen
        - _wcsncat
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:34,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:35,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:37,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:37,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:37,21'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:40,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:38,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:40,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:40,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:41,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:43,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:43,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:44,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:46,28'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:50,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:51,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:53,17'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:56,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:58,8'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:78,15'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:58,33'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:75,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:58,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:60,16'
              BranchSideFuncs:
                - calloc
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:75,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:66,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:67,5'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:69,13'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:85,4'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:87,12'
              BranchSideFuncs:
                - _wcsncat
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:88,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:89,13'
              BranchSideFuncs:
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:90,12'
              BranchSideFuncs:
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:32,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:46,20'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:47,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:64,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:69,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:70,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:71,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:82,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:87,3'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:89,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:90,3'
          Dst:             _wcsncat
    - functionName:    PathAllocCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathAllocCombine.h'
      linkageType:     InternalLinkage
      functionLinenumber: 102
      functionLinenumberEnd: 171
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - pszMore
        - dwFlags
        - ppszPathOut
      BBCount:         44
      ICount:          270
      EdgeCount:       58
      CyclomaticComplexity: 16
      functionsReached:
        - WLog_Get
        - calloc
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:111,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:112,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:114,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:114,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:114,21'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:117,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:115,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:117,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:117,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:118,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:120,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:120,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:121,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:123,27'
              BranchSideFuncs:
                - strlen
                - strlen
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:130,17'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
                - calloc
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:133,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:135,8'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:153,22'
              BranchSideFuncs:
                - calloc
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:135,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:135,33'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:149,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:135,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:138,27'
              BranchSideFuncs:
                - calloc
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:149,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:142,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:143,5'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:145,14'
              BranchSideFuncs:
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:157,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:158,4'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:160,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathAllocCombine.h:160,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:161,14'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathAllocCombine.h:163,14'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:109,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:123,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:124,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:140,23'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:145,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:155,22'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:161,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathAllocCombine.h:163,4'
          Dst:             snprintf
    - functionName:    PathCchCombineExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 442
      functionLinenumberEnd: 444
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - pszMore
        - dwFlags
      BBCount:         15
      ICount:          63
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:443,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:443,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:443,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:443,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:443,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:443,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:443,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:443,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:443,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCombineExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 435
      functionLinenumberEnd: 437
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - pszMore
        - dwFlags
      BBCount:         15
      ICount:          63
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:436,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:436,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:436,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:436,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:436,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:436,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:436,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:436,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:436,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCombineW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 426
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - pszMore
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:425,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:425,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:425,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:425,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:425,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:425,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:425,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:425,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:425,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCombineA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 418
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - pszMore
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:419,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:419,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:419,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:419,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:419,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:419,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:419,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:419,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:419,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathAllocCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 408
      functionLinenumberEnd: 410
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - dwFlags
        - ppszPathOut
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:409,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:409,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:409,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:409,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:409,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:409,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:409,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:409,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:409,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathAllocCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 402
      functionLinenumberEnd: 404
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathIn
        - dwFlags
        - ppszPathOut
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:403,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:403,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:403,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:403,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:403,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:403,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:403,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:403,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:403,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCanonicalizeExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 392
      functionLinenumberEnd: 394
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - dwFlags
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:393,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:393,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:393,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:393,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:393,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:393,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:393,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:393,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:393,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCanonicalizeExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 385
      functionLinenumberEnd: 387
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
        - dwFlags
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:386,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:386,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:386,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:386,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:386,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:386,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:386,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:386,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:386,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCanonicalizeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 374
      functionLinenumberEnd: 376
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:375,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:375,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:375,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:375,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:375,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:375,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:375,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:375,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:375,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchCanonicalizeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 368
      functionLinenumberEnd: 370
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPathOut
        - cchPathOut
        - pszPathIn
      BBCount:         15
      ICount:          57
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:369,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:369,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:369,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:369,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:369,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:369,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:369,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:369,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:369,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchAppendExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 358
      functionLinenumberEnd: 360
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
        - dwFlags
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:359,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:359,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:359,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:359,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:359,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:359,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:359,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:359,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:359,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchAppendExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 352
      functionLinenumberEnd: 354
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
        - dwFlags
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:353,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:353,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:353,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:353,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:353,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:353,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:353,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:353,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:353,2'
          Dst:             WLog_PrintMessage
    - functionName:    NativePathCchAppendA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
      BBCount:         48
      ICount:          268
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:78,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:79,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:81,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:82,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:84,6'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:84,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:84,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:85,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:85,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:87,25'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:88,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:89,20'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:91,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:92,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:93,20'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:95,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:95,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:95,23'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:97,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:97,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:99,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:102,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,30'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:105,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,67'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:111,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:105,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:111,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:105,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:107,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:110,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:113,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:115,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:119,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:87,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:91,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:99,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:107,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:115,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:121,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    UnixPathCchAppendW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
      BBCount:         42
      ICount:          266
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:18,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:19,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:21,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:21,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:22,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:24,6'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:24,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:24,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:25,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:24,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:25,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:27,26'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:33,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:33,23'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:33,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:35,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:35,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:37,11'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:42,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,30'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:45,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,67'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:53,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:45,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:53,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:45,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:47,11'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:52,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:55,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:57,16'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:64,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:27,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:28,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:39,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:39,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:49,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:49,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:60,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:60,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:61,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:61,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:66,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    UnixPathCchAppendA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
      BBCount:         48
      ICount:          268
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:78,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:79,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:81,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:82,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:84,6'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:84,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:84,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:85,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:85,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:87,25'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:88,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:89,20'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:91,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:92,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:93,20'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:95,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:95,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:95,23'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:97,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:97,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:99,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:102,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,30'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:105,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,67'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:111,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:105,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:111,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:105,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:107,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:110,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:113,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:115,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:119,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:87,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:91,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:99,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:107,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:115,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:121,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAppendW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 67
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
      BBCount:         42
      ICount:          266
      EdgeCount:       57
      CyclomaticComplexity: 17
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:18,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:19,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:21,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:21,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:22,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:24,6'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:24,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:24,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:25,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:24,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:25,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:27,26'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:33,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:33,23'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:33,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:35,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:35,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:37,11'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:42,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,30'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:45,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:43,67'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:53,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:43,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:45,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:53,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:45,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:47,11'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:52,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:55,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:57,16'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
                - _wcslen
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:64,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:27,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:28,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:39,31'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:39,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:49,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:49,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:60,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:60,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:61,27'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:61,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:66,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAppendA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAppend.h'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 122
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszMore
      BBCount:         48
      ICount:          268
      EdgeCount:       65
      CyclomaticComplexity: 19
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:78,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:79,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:81,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:81,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:82,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:84,6'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:84,19'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:84,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:85,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:85,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:87,25'
              BranchSideFuncs:
                - strlen
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:88,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:89,20'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:91,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:92,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:93,20'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:95,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:95,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:95,23'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:95,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:97,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:97,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:99,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:102,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,30'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,45'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,50'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:105,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:103,67'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:111,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:103,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:105,8'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:111,12'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:105,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:107,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:110,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAppend.h:113,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:115,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAppend.h:119,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:87,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:91,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:99,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:107,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:115,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAppend.h:121,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    NativePathCchAddExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddExtension.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         20
      ICount:          150
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
        - _wcsncat
        - _wcsrchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:18,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:19,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:21,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:21,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:22,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:24,25'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:31,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:31,14'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:31,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:33,7'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:33,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:34,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:35,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:39,15'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:50,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:43,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:44,13'
              BranchSideFuncs:
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:45,12'
              BranchSideFuncs:
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:24,17'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:25,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:28,9'
          Dst:             _wcsrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:29,15'
          Dst:             _wcsrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:44,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:44,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:45,3'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:50,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    NativePathCchAddExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddExtension.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         20
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:63,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:64,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:66,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:67,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:69,24'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:76,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:76,14'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:78,7'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:78,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:79,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:80,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:84,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:92,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:85,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:87,15'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:69,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:70,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:73,9'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:74,15'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:85,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:87,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:92,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    UnixPathCchAddExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddExtension.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         20
      ICount:          150
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
        - _wcsncat
        - _wcsrchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:18,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:19,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:21,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:21,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:22,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:24,25'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:31,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:31,14'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:31,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:33,7'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:33,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:34,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:35,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:39,15'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:50,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:43,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:44,13'
              BranchSideFuncs:
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:45,12'
              BranchSideFuncs:
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:24,17'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:25,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:28,9'
          Dst:             _wcsrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:29,15'
          Dst:             _wcsrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:44,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:44,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:45,3'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:50,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    UnixPathCchAddExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddExtension.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         20
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:63,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:64,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:66,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:67,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:69,24'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:76,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:76,14'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:78,7'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:78,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:79,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:80,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:84,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:92,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:85,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:87,15'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:69,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:70,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:73,9'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:74,15'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:85,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:87,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:92,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddExtensionW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddExtension.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 51
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         20
      ICount:          150
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
        - _wcsncat
        - _wcsrchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:18,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:19,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:21,7'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:21,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:22,3'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:24,25'
              BranchSideFuncs:
                - _wcslen
                - _wcslen
                - _wcsrchr
                - _wcsrchr
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:31,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:31,14'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:31,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:33,7'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:33,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:34,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:35,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - _wcslen
                - _wcsncat
                - _wcsncat
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:39,15'
              BranchSideFuncs:
                - _wcslen
                - _wcsncat
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:50,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:43,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:44,13'
              BranchSideFuncs:
                - _wcsncat
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:45,12'
              BranchSideFuncs:
                - _wcsncat
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:24,17'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:25,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:28,9'
          Dst:             _wcsrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:29,15'
          Dst:             _wcsrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:44,23'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:44,4'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:45,3'
          Dst:             _wcsncat
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:50,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddExtensionA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddExtension.h'
      linkageType:     InternalLinkage
      functionLinenumber: 56
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - pszExt
      BBCount:         20
      ICount:          146
      EdgeCount:       27
      CyclomaticComplexity: 9
      functionsReached:
        - HRESULT_FROM_WIN32
        - snprintf
        - strlen
        - strrchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:63,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:64,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:66,7'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:66,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:67,3'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:69,24'
              BranchSideFuncs:
                - strlen
                - strlen
                - strrchr
                - strrchr
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:76,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:76,14'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:76,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:78,7'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:78,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:79,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:80,2'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
                - snprintf
                - snprintf
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:82,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:84,7'
              BranchSideFuncs:
                - snprintf
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:92,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddExtension.h:84,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:85,15'
              BranchSideFuncs:
                - snprintf
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddExtension.h:87,15'
              BranchSideFuncs:
                - snprintf
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:69,17'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:70,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:73,9'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:74,15'
          Dst:             strrchr
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:85,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:87,4'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/path/include/PathCchAddExtension.h:92,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchRemoveBackslashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 214
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:215,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:215,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:215,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:215,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:215,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:215,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:215,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:215,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:215,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRemoveBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 207
      functionLinenumberEnd: 209
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         15
      ICount:          60
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:208,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:208,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:208,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:208,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:208,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:208,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:208,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:208,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:208,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchAddSeparatorExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:15,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:16,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:21,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:31,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:31,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:42,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:44,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:46,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:51,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:57,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:44,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:57,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:15,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:16,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:21,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:31,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:31,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:42,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:44,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:46,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:51,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:57,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:44,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:57,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 12
      functionLinenumberEnd: 32
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:15,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:16,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:20,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:21,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:23,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:25,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:31,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:18,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:31,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparatorEx.h'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 58
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
        - ppszEnd
        - pcchRemaining
      BBCount:         10
      ICount:          78
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:42,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:44,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:46,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:47,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:51,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:57,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:44,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparatorEx.h:57,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchRemoveBackslashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 142
      functionLinenumberEnd: 144
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:143,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:143,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:143,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:143,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:143,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:143,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:143,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchRemoveBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/path.c'
      linkageType:     InternalLinkage
      functionLinenumber: 136
      functionLinenumberEnd: 138
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         15
      ICount:          54
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/path.c:137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:137,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:137,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/path.c:137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/path.c:137,2'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/path.c:137,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/path.c:137,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/path.c:137,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/path.c:137,2'
          Dst:             WLog_PrintMessage
    - functionName:    PathCchAddSeparatorW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:14,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:15,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:19,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:20,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:22,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:22,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:24,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSeparatorA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:39,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:40,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:45,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:47,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:49,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:14,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:15,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:19,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:20,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:22,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:22,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:24,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddSlashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:39,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:40,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:45,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:47,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:49,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 11
      functionLinenumberEnd: 31
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - _wcslen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:14,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:15,3'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,26'
              BranchSideFuncs:
                - _wcslen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:19,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:20,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:22,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:22,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:24,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:17,18'
          Dst:             _wcslen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:30,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    PathCchAddBackslashA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/include/PathCchAddSeparator.h'
      linkageType:     InternalLinkage
      functionLinenumber: 36
      functionLinenumberEnd: 56
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pszPath
        - cchPath
      BBCount:         10
      ICount:          72
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - HRESULT_FROM_WIN32
        - strlen
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:39,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:40,3'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,25'
              BranchSideFuncs:
                - strlen
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:45,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:47,6'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
        - Branch String:   'winpr/libwinpr/path/include/PathCchAddSeparator.h:47,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:49,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
              BranchSideFuncs:
                - HRESULT_FROM_WIN32
      Callsites:
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:42,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/include/PathCchAddSeparator.h:55,9'
          Dst:             HRESULT_FROM_WIN32
    - functionName:    winpr_PathMakePath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 798
      functionLinenumberEnd: 815
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - lpAttributes
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathMakePathA
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:799,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:800,3'
              BranchSideFuncs:
                - PathMakePathA
            - BranchSide:      'winpr/libwinpr/path/shell.c:802,23'
              BranchSideFuncs:
                - PathMakePathA
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:802,9'
          Dst:             PathMakePathA
    - functionName:    PathMakePathA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 475
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - lpAttributes
      BBCount:         26
      ICount:          133
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - PathGetSeparatorA
        - __errno_location
        - _strdup
        - mkdir
        - strchr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:492,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:492,16'
              BranchSideFuncs:
                - _strdup
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:493,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:492,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:493,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:497,22'
              BranchSideFuncs:
                - _strdup
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:497,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:498,3'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:505,17'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:505,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:508,19'
              BranchSideFuncs:
                - strchr
                - mkdir
                - free
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:522,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:508,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:509,5'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:511,13'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:511,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:512,8'
              BranchSideFuncs:
                - __errno_location
                - free
                - strchr
                - mkdir
            - BranchSide:      'winpr/libwinpr/path/shell.c:518,7'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:512,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:512,17'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:514,12'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:518,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:505,2'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:519,9'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:481,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:497,14'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/path/shell.c:508,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:511,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:512,8'
          Dst:             __errno_location
    - functionName:    winpr_RemoveDirectory
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 755
      functionLinenumberEnd: 757
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpPathName
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - RemoveDirectoryA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:757,9'
          Dst:             RemoveDirectoryA
    - functionName:    winpr_DeleteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 732
      functionLinenumberEnd: 734
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpFileName
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - DeleteFileA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:734,9'
          Dst:             DeleteFileA
    - functionName:    winpr_MoveFileEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 704
      functionLinenumberEnd: 706
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
        - dwFlags
      BBCount:         3
      ICount:          24
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MoveFileExA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:706,9'
          Dst:             MoveFileExA
    - functionName:    winpr_MoveFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 676
      functionLinenumberEnd: 678
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpExistingFileName
        - lpNewFileName
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - MoveFileA
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:678,9'
          Dst:             MoveFileA
    - functionName:    PathIsDirectoryEmptyW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 659
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PathIsDirectoryEmptyA
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:662,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:663,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsDirectoryEmptyA
            - BranchSide:      'winpr/libwinpr/path/shell.c:664,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsDirectoryEmptyA
        - Branch String:   'winpr/libwinpr/path/shell.c:665,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:666,3'
              BranchSideFuncs:
                - PathIsDirectoryEmptyA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:667,30'
              BranchSideFuncs:
                - PathIsDirectoryEmptyA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:664,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:667,8'
          Dst:             PathIsDirectoryEmptyA
    - functionName:    PathIsDirectoryEmptyA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 637
      functionLinenumberEnd: 656
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         15
      ICount:          78
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - closedir
        - opendir
        - readdir64
        - strcmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:642,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:643,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:645,2'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/path/shell.c:645,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:647,14'
              BranchSideFuncs:
                - strcmp
                - strcmp
                - closedir
                - readdir64
            - BranchSide:      'winpr/libwinpr/path/shell.c:654,11'
              BranchSideFuncs:
                - closedir
        - Branch String:   'winpr/libwinpr/path/shell.c:647,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:647,46'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/path/shell.c:648,4'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
        - Branch String:   'winpr/libwinpr/path/shell.c:647,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:648,4'
              BranchSideFuncs:
                - readdir64
                - closedir
                - strcmp
                - strcmp
            - BranchSide:      'winpr/libwinpr/path/shell.c:650,9'
              BranchSideFuncs:
                - closedir
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:640,13'
          Dst:             opendir
        - Src:             'winpr/libwinpr/path/shell.c:645,15'
          Dst:             readdir64
        - Src:             'winpr/libwinpr/path/shell.c:647,7'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:647,39'
          Dst:             strcmp
        - Src:             'winpr/libwinpr/path/shell.c:654,2'
          Dst:             closedir
    - functionName:    winpr_PathFileExists
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 778
      functionLinenumberEnd: 795
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - PathFileExistsA
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:779,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:780,3'
              BranchSideFuncs:
                - PathFileExistsA
            - BranchSide:      'winpr/libwinpr/path/shell.c:782,25'
              BranchSideFuncs:
                - PathFileExistsA
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:782,9'
          Dst:             PathFileExistsA
    - functionName:    PathFileExistsA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 610
      functionLinenumberEnd: 617
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         6
      ICount:          33
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - stat64
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:613,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:614,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:616,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:613,6'
          Dst:             stat64
    - functionName:    PathFileExistsW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 620
      functionLinenumberEnd: 633
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - winpr_PathFileExists
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:624,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:625,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - winpr_PathFileExists
            - BranchSide:      'winpr/libwinpr/path/shell.c:626,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - winpr_PathFileExists
        - Branch String:   'winpr/libwinpr/path/shell.c:627,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:628,3'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:630,29'
              BranchSideFuncs:
                - winpr_PathFileExists
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:626,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:630,8'
          Dst:             winpr_PathFileExists
    - functionName:    PathIsRelativeW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 593
      functionLinenumberEnd: 606
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         8
      ICount:          48
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PathIsRelativeA
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:597,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:598,3'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsRelativeA
            - BranchSide:      'winpr/libwinpr/path/shell.c:600,40'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - PathIsRelativeA
        - Branch String:   'winpr/libwinpr/path/shell.c:601,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:602,3'
              BranchSideFuncs:
                - PathIsRelativeA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:603,24'
              BranchSideFuncs:
                - PathIsRelativeA
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:600,16'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:603,8'
          Dst:             PathIsRelativeA
    - functionName:    PathIsRelativeA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 585
      functionLinenumberEnd: 590
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pszPath
      BBCount:         4
      ICount:          29
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:586,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:587,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:589,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    PathMakePathW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 580
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - path
        - lpAttributes
      BBCount:         26
      ICount:          138
      EdgeCount:       34
      CyclomaticComplexity: 10
      functionsReached:
        - ConvertWCharToUtf8Alloc
        - PathGetSeparatorA
        - PathGetSeparatorW
        - __errno_location
        - mkdir
        - strchr
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:546,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:546,16'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:547,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:546,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:547,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:551,32'
              BranchSideFuncs:
                - ConvertWCharToUtf8Alloc
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:552,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:553,3'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:560,17'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:560,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:563,19'
              BranchSideFuncs:
                - strchr
                - mkdir
                - free
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:577,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:563,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:564,5'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:566,13'
              BranchSideFuncs:
                - mkdir
                - free
                - strchr
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:566,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:567,8'
              BranchSideFuncs:
                - __errno_location
                - free
                - strchr
                - mkdir
            - BranchSide:      'winpr/libwinpr/path/shell.c:573,7'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
        - Branch String:   'winpr/libwinpr/path/shell.c:567,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:567,17'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:569,12'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:573,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:560,2'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
            - BranchSide:      'winpr/libwinpr/path/shell.c:574,9'
              BranchSideFuncs:
                - free
                - strchr
                - mkdir
                - __errno_location
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:534,23'
          Dst:             PathGetSeparatorW
        - Src:             'winpr/libwinpr/path/shell.c:535,21'
          Dst:             PathGetSeparatorA
        - Src:             'winpr/libwinpr/path/shell.c:551,8'
          Dst:             ConvertWCharToUtf8Alloc
        - Src:             'winpr/libwinpr/path/shell.c:563,12'
          Dst:             strchr
        - Src:             'winpr/libwinpr/path/shell.c:566,7'
          Dst:             mkdir
        - Src:             'winpr/libwinpr/path/shell.c:567,8'
          Dst:             __errno_location
    - functionName:    GetEnvironmentSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 410
      functionLinenumberEnd: 421
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
        - path
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPath
        - GetEnvironmentPath
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:415,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:416,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:418,28'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:413,8'
          Dst:             GetEnvironmentPath
        - Src:             'winpr/libwinpr/path/shell.c:418,12'
          Dst:             GetCombinedPath
    - functionName:    GetEnvironmentPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 384
      functionLinenumberEnd: 407
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - name
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvironmentVariableX
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:390,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:392,23'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:406,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:394,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:395,4'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:397,37'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:399,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:401,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:404,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:388,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:397,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    GetCombinedPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - basePath
        - subPath
      BBCount:         26
      ICount:          164
      EdgeCount:       35
      CyclomaticComplexity: 11
      functionsReached:
        - NativePathCchAppendA
        - PathCchConvertStyleA
        - _strdup
        - calloc
        - strlen
      functionUses:    8
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:432,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:433,27'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - strlen
            - BranchSide:      'winpr/libwinpr/path/shell.c:435,6'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - strlen
        - Branch String:   'winpr/libwinpr/path/shell.c:435,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:436,26'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:438,11'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - PathCchConvertStyleA
                - _strdup
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:441,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:442,3'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:444,6'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:444,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:445,3'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:447,6'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:447,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:448,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:450,7'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:450,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:451,10'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:453,23'
              BranchSideFuncs:
                - _strdup
                - free
                - free
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:455,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:456,3'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:458,6'
              BranchSideFuncs:
                - PathCchConvertStyleA
                - NativePathCchAppendA
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:458,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:459,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:461,32'
              BranchSideFuncs:
                - NativePathCchAppendA
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:462,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:463,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:465,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:433,20'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:436,19'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:439,16'
          Dst:             calloc
        - Src:             'winpr/libwinpr/path/shell.c:447,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:453,15'
          Dst:             _strdup
        - Src:             'winpr/libwinpr/path/shell.c:458,6'
          Dst:             PathCchConvertStyleA
        - Src:             'winpr/libwinpr/path/shell.c:461,11'
          Dst:             NativePathCchAppendA
    - functionName:    GetKnownSubPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 381
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - id
        - path
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetCombinedPath
        - GetKnownPath
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:375,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:376,3'
              BranchSideFuncs:
                - GetCombinedPath
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:378,28'
              BranchSideFuncs:
                - GetCombinedPath
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:373,14'
          Dst:             GetKnownPath
        - Src:             'winpr/libwinpr/path/shell.c:378,12'
          Dst:             GetCombinedPath
    - functionName:    GetKnownPath
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 330
      functionLinenumberEnd: 366
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - id
      BBCount:         26
      ICount:          111
      EdgeCount:       28
      CyclomaticComplexity: 4
      functionsReached:
        - GetKnownPathIdString
        - GetPath_HOME
        - GetPath_TEMP
        - GetPath_XDG_CACHE_HOME
        - GetPath_XDG_CONFIG_HOME
        - GetPath_XDG_DATA_HOME
        - GetPath_XDG_RUNTIME_DIR
        - WLog_Get
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:333,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:336,11'
              BranchSideFuncs:
                - GetPath_HOME
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:340,11'
              BranchSideFuncs:
                - GetPath_TEMP
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:344,11'
              BranchSideFuncs:
                - GetPath_XDG_DATA_HOME
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:348,11'
              BranchSideFuncs:
                - GetPath_XDG_CONFIG_HOME
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:352,11'
              BranchSideFuncs:
                - GetPath_XDG_CACHE_HOME
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:356,11'
              BranchSideFuncs:
                - GetPath_XDG_RUNTIME_DIR
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:360,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/shell.c:364,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:364,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:365,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/shell.c:365,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:365,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:365,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - GetKnownPathIdString
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/path/shell.c:365,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:365,3'
              BranchSideFuncs:
                - GetKnownPathIdString
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/path/shell.c:365,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:336,11'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:340,11'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:344,11'
          Dst:             GetPath_XDG_DATA_HOME
        - Src:             'winpr/libwinpr/path/shell.c:348,11'
          Dst:             GetPath_XDG_CONFIG_HOME
        - Src:             'winpr/libwinpr/path/shell.c:352,11'
          Dst:             GetPath_XDG_CACHE_HOME
        - Src:             'winpr/libwinpr/path/shell.c:356,11'
          Dst:             GetPath_XDG_RUNTIME_DIR
        - Src:             'winpr/libwinpr/path/shell.c:365,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/path/shell.c:365,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/path/shell.c:365,3'
          Dst:             GetKnownPathIdString
        - Src:             'winpr/libwinpr/path/shell.c:365,3'
          Dst:             WLog_PrintMessage
    - functionName:    GetPath_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 101
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetEnvAlloc
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:93,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:93,8'
              BranchSideFuncs:
                - GetEnvAlloc
            - BranchSide:      'winpr/libwinpr/path/shell.c:93,8'
              BranchSideFuncs:
                - GetEnvAlloc
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:99,9'
          Dst:             GetEnvAlloc
    - functionName:    GetPath_TEMP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 105
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          30
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvAlloc
        - _strdup
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:106,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:106,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - _strdup
            - BranchSide:      'winpr/libwinpr/path/shell.c:106,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - _strdup
        - Branch String:   'winpr/libwinpr/path/shell.c:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:114,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:115,10'
              BranchSideFuncs:
                - _strdup
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:112,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:115,10'
          Dst:             _strdup
    - functionName:    GetPath_XDG_DATA_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:123,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:123,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:123,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:140,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:142,9'
              BranchSideFuncs:
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:144,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:145,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:147,16'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:150,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:152,8'
              BranchSideFuncs:
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:156,18'
              BranchSideFuncs:
                - snprintf
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:137,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:142,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:147,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:156,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CONFIG_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 163
      functionLinenumberEnd: 216
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         13
      ICount:          86
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - GetPath_TEMP
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:164,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:164,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - GetPath_TEMP
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:164,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - GetPath_TEMP
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:192,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:193,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:195,9'
              BranchSideFuncs:
                - GetPath_HOME
                - GetPath_TEMP
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:197,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:198,10'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:200,7'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:200,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:201,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:203,16'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:208,8'
              BranchSideFuncs:
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:212,18'
              BranchSideFuncs:
                - snprintf
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:190,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:195,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:198,10'
          Dst:             GetPath_TEMP
        - Src:             'winpr/libwinpr/path/shell.c:203,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:212,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_CACHE_HOME
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 219
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         10
      ICount:          73
      EdgeCount:       13
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvAlloc
        - GetPath_HOME
        - snprintf
        - strlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:220,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:220,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:220,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:249,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:250,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:252,9'
              BranchSideFuncs:
                - GetPath_HOME
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:254,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:255,3'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:257,16'
              BranchSideFuncs:
                - strlen
                - malloc
                - free
                - snprintf
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:260,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:262,8'
              BranchSideFuncs:
                - snprintf
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:266,18'
              BranchSideFuncs:
                - snprintf
                - free
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:247,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:252,9'
          Dst:             GetPath_HOME
        - Src:             'winpr/libwinpr/path/shell.c:257,9'
          Dst:             strlen
        - Src:             'winpr/libwinpr/path/shell.c:266,8'
          Dst:             snprintf
    - functionName:    GetPath_XDG_RUNTIME_DIR
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 327
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetEnvAlloc
        - GetPath_TEMP
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:274,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:274,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_TEMP
            - BranchSide:      'winpr/libwinpr/path/shell.c:274,8'
              BranchSideFuncs:
                - GetEnvAlloc
                - GetPath_TEMP
        - Branch String:   'winpr/libwinpr/path/shell.c:322,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:323,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/path/shell.c:325,9'
              BranchSideFuncs:
                - GetPath_TEMP
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:319,9'
          Dst:             GetEnvAlloc
        - Src:             'winpr/libwinpr/path/shell.c:325,9'
          Dst:             GetPath_TEMP
    - functionName:    GetEnvAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/path/shell.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpName
      BBCount:         11
      ICount:          73
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - GetEnvironmentVariableX
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/path/shell.c:72,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:74,16'
              BranchSideFuncs:
                - malloc
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:88,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/path/shell.c:76,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:77,4'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:79,37'
              BranchSideFuncs:
                - GetEnvironmentVariableX
                - free
        - Branch String:   'winpr/libwinpr/path/shell.c:81,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/path/shell.c:83,9'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/path/shell.c:86,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/path/shell.c:70,10'
          Dst:             GetEnvironmentVariableX
        - Src:             'winpr/libwinpr/path/shell.c:79,13'
          Dst:             GetEnvironmentVariableX
    - functionName:    ArrayList_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 596
      functionLinenumberEnd: 604
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_Clear
        - DeleteCriticalSection
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:597,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:598,3'
              BranchSideFuncs:
                - ArrayList_Clear
                - DeleteCriticalSection
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:600,18'
              BranchSideFuncs:
                - ArrayList_Clear
                - DeleteCriticalSection
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:600,2'
          Dst:             ArrayList_Clear
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:601,2'
          Dst:             DeleteCriticalSection
    - functionName:    ArrayList_Clear
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 256
      functionLinenumberEnd: 271
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         13
      ICount:          85
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:257,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:257,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:258,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:260,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:262,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:268,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:262,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:263,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:265,3'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:257,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:258,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:270,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Lock_Conditional
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 120
      functionLinenumberEnd: 124
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         9
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - EnterCriticalSection
        - __assert_fail
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:121,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:121,2'
              BranchSideFuncs:
                - EnterCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:122,6'
              BranchSideFuncs:
                - EnterCriticalSection
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:122,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:122,6'
              BranchSideFuncs:
                - EnterCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:123,25'
              BranchSideFuncs:
                - EnterCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:121,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:123,3'
          Dst:             EnterCriticalSection
    - functionName:    ArrayList_Unlock_Conditional
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 141
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         9
      ICount:          40
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - LeaveCriticalSection
        - __assert_fail
      functionUses:    9
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:138,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:138,2'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:139,6'
              BranchSideFuncs:
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:139,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:139,6'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:140,25'
              BranchSideFuncs:
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:138,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:140,3'
          Dst:             LeaveCriticalSection
    - functionName:    ArrayList_DefaultCompare
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 516
      functionLinenumberEnd: 517
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - objA
        - objB
      BBCount:         1
      ICount:          15
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    ArrayList_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 568
      functionLinenumberEnd: 593
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - synchronized
      BBCount:         11
      ICount:          75
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - ArrayList_EnsureCapacity
        - ArrayList_Free
        - ArrayList_Object
        - InitializeCriticalSectionAndSpinCount
        - calloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:573,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:574,3'
              BranchSideFuncs:
                - ArrayList_Object
                - ArrayList_Free
                - ArrayList_EnsureCapacity
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:576,28'
              BranchSideFuncs:
                - ArrayList_Object
                - ArrayList_Free
                - ArrayList_EnsureCapacity
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:579,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:580,3'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
                - ArrayList_Free
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:581,2'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
                - ArrayList_Free
                - InitializeCriticalSectionAndSpinCount
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:582,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:583,3'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:585,41'
              BranchSideFuncs:
                - InitializeCriticalSectionAndSpinCount
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:571,27'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:578,8'
          Dst:             ArrayList_Object
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:582,7'
          Dst:             ArrayList_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:585,2'
          Dst:             InitializeCriticalSectionAndSpinCount
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:590,2'
          Dst:             ArrayList_Free
    - functionName:    ArrayList_Object
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 521
      functionLinenumberEnd: 523
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          28
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:522,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:522,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:522,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:522,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_EnsureCapacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 199
      functionLinenumberEnd: 220
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - count
      BBCount:         18
      ICount:          118
      EdgeCount:       21
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - realloc
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:200,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:200,2'
              BranchSideFuncs:
                - __assert_fail
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:201,2'
              BranchSideFuncs:
                - __assert_fail
                - realloc
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:201,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:201,2'
              BranchSideFuncs:
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:203,6'
              BranchSideFuncs:
                - realloc
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:203,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:205,10'
              BranchSideFuncs:
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:219,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:207,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:208,18'
              BranchSideFuncs:
                - realloc
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:210,30'
              BranchSideFuncs:
                - realloc
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:212,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:213,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:215,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:200,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:201,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:210,22'
          Dst:             realloc
    - functionName:    ArrayList_ForEachAP
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 538
      functionLinenumberEnd: 560
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - fkt
        - ap
      BBCount:         16
      ICount:          106
      EdgeCount:       18
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Count
        - ArrayList_GetItem
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:542,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:542,2'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_Lock_Conditional
                - ArrayList_Count
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:543,2'
              BranchSideFuncs:
                - __assert_fail
                - ArrayList_Lock_Conditional
                - ArrayList_Count
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:543,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:543,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Count
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:545,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Count
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:547,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:549,8'
              BranchSideFuncs:
                - ArrayList_GetItem
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:557,5'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:554,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:555,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:556,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_GetItem
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:542,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:543,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:545,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:546,17'
          Dst:             ArrayList_Count
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:550,15'
          Dst:             ArrayList_GetItem
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:559,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Count
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 69
      functionLinenumberEnd: 71
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:70,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:70,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:70,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:70,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_GetItem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 154
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - index
      BBCount:         9
      ICount:          52
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:157,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:158,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:158,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:158,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:160,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:157,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_ForEach
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 527
      functionLinenumberEnd: 534
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - fkt
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - ArrayList_ForEachAP
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:531,7'
          Dst:             ArrayList_ForEachAP
    - functionName:    ArrayList_LastIndexOf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 481
      functionLinenumberEnd: 512
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - obj
        - startIndex
        - count
      BBCount:         22
      ICount:          139
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:486,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:486,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:487,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:490,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:491,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:493,19'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:494,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:495,12'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:497,18'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:498,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:500,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:507,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:500,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:502,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:505,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:507,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:507,6'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:508,9'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:486,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:487,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:510,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_IndexOf
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 432
      functionLinenumberEnd: 463
      functionDepth:   0
      returnType:      size_t
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - obj
        - startIndex
        - count
      BBCount:         22
      ICount:          138
      EdgeCount:       27
      CyclomaticComplexity: 7
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:437,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:437,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:438,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:441,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:442,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:444,19'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:445,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:446,12'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:448,18'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:449,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:451,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:458,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:451,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:453,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:456,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:458,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:458,6'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:459,9'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:437,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:438,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:461,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_RemoveAt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 399
      functionLinenumberEnd: 415
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - index
      BBCount:         12
      ICount:          77
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:402,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:402,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:403,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:405,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:405,6'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:407,7'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:407,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:408,4'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:410,25'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:402,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:403,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:410,9'
          Dst:             ArrayList_Shift
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:413,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Shift
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 249
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - arrayList
        - index
        - count
      BBCount:         18
      ICount:          130
      EdgeCount:       22
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_EnsureCapacity
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:227,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:227,2'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:228,6'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:228,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:230,33'
              BranchSideFuncs:
                - ArrayList_EnsureCapacity
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:237,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:230,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:231,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:233,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:241,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:242,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:245,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:227,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:230,8'
          Dst:             ArrayList_EnsureCapacity
    - functionName:    ArrayList_Remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 391
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - obj
      BBCount:         19
      ICount:          122
      EdgeCount:       23
      CyclomaticComplexity: 6
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:368,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:368,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:369,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:372,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:374,7'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:381,6'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:374,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:376,10'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:379,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:381,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:381,6'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:383,7'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:383,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:384,4'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:386,25'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:368,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:369,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:386,9'
          Dst:             ArrayList_Shift
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:389,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Insert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 336
      functionLinenumberEnd: 356
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - index
        - obj
      BBCount:         12
      ICount:          68
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_SetItem
        - ArrayList_Shift
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:339,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:339,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
                - ArrayList_SetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:340,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
                - ArrayList_Shift
                - ArrayList_SetItem
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:342,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:342,6'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:344,24'
              BranchSideFuncs:
                - ArrayList_Shift
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:344,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:346,8'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:350,22'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:339,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:340,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:344,8'
          Dst:             ArrayList_Shift
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:350,4'
          Dst:             ArrayList_SetItem
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:354,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_SetItem
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 193
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - index
        - obj
      BBCount:         17
      ICount:          105
      EdgeCount:       21
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:172,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:172,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:173,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:173,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:174,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:176,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:176,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:178,29'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:188,5'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:179,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:179,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:181,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:179,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:180,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:181,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:172,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_Append
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 328
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - obj
      BBCount:         9
      ICount:          62
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - ArrayList_EnsureCapacity
        - ArrayList_Lock_Conditional
        - ArrayList_SetItem
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:316,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:316,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_EnsureCapacity
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:317,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_EnsureCapacity
                - ArrayList_Unlock_Conditional
                - ArrayList_SetItem
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:319,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:320,3'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:322,10'
              BranchSideFuncs:
                - ArrayList_SetItem
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:316,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:317,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:319,7'
          Dst:             ArrayList_EnsureCapacity
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:323,7'
          Dst:             ArrayList_SetItem
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:326,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Contains
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 294
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - obj
      BBCount:         13
      ICount:          80
      EdgeCount:       15
      CyclomaticComplexity: 4
      functionsReached:
        - ArrayList_Lock_Conditional
        - ArrayList_Unlock_Conditional
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:281,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:281,2'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:282,29'
              BranchSideFuncs:
                - ArrayList_Lock_Conditional
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:284,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:284,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:286,8'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:288,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:289,4'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:290,2'
              BranchSideFuncs:
                - ArrayList_Unlock_Conditional
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:281,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:282,2'
          Dst:             ArrayList_Lock_Conditional
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:292,2'
          Dst:             ArrayList_Unlock_Conditional
    - functionName:    ArrayList_Unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 144
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - LeaveCriticalSection
        - __assert_fail
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:145,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:145,2'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:145,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:145,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:146,2'
          Dst:             LeaveCriticalSection
    - functionName:    ArrayList_Lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 127
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - EnterCriticalSection
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:128,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:128,2'
              BranchSideFuncs:
                - EnterCriticalSection
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:128,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:128,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:129,2'
          Dst:             EnterCriticalSection
    - functionName:    ArrayList_IsSynchronized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 110
      functionLinenumberEnd: 112
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:111,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:111,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:111,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:111,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_IsReadOnly
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 100
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          26
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:101,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:101,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:101,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:101,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_IsFixedSized
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 92
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          26
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:91,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:91,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:91,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:91,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_Items
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 79
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      size_t
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
        - ppItems
      BBCount:         6
      ICount:          37
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:80,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:80,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:80,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:80,2'
          Dst:             __assert_fail
    - functionName:    ArrayList_Capacity
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/collections/ArrayList.c'
      linkageType:     InternalLinkage
      functionLinenumber: 59
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arrayList
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/collections/ArrayList.c:60,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:60,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/collections/ArrayList.c:60,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/collections/ArrayList.c:60,2'
          Dst:             __assert_fail
    - functionName:    WLog_PrintMessagePrefixVA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 76
      functionLinenumberEnd: 79
      functionDepth:   0
      returnType:      void
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
        - format
        - args
      BBCount:         6
      ICount:          41
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - vsnprintf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:77,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:77,2'
              BranchSideFuncs:
                - vsnprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:77,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:77,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:78,8'
          Dst:             vsnprintf
    - functionName:    log_invalid_fmt
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 106
      functionLinenumberEnd: 108
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - what
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - fprintf
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:107,8'
          Dst:             fprintf
    - functionName:    check_and_log_format_size
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 123
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - format
        - size
        - index
        - add
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - fprintf
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:114,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:116,17'
              BranchSideFuncs:
                - fprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:122,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:116,9'
          Dst:             fprintf
    - functionName:    opt_compare_fn
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 132
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - a
        - b
      BBCount:         6
      ICount:          48
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - strncmp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:129,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:130,3'
              BranchSideFuncs:
                - strncmp
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:131,17'
              BranchSideFuncs:
                - strncmp
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:131,9'
          Dst:             strncmp
    - functionName:    WLog_Layout_Free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 364
      functionLinenumberEnd: 375
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - layout
      BBCount:         9
      ICount:          47
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:365,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:365,6'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:367,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:367,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:369,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:373,8'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    WLog_Layout_New
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 312
      functionLinenumberEnd: 361
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         18
      ICount:          119
      EdgeCount:       24
      CyclomaticComplexity: 8
      functionsReached:
        - GetEnvironmentVariableA
        - _strdup
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:319,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:320,3'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:322,34'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - malloc
                - free
                - GetEnvironmentVariableA
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:324,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:326,23'
              BranchSideFuncs:
                - malloc
                - free
                - GetEnvironmentVariableA
                - _strdup
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:342,6'
              BranchSideFuncs:
                - _strdup
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:328,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:330,9'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:334,31'
              BranchSideFuncs:
                - GetEnvironmentVariableA
                - _strdup
                - free
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:334,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:336,9'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:340,2'
              BranchSideFuncs:
                - _strdup
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:342,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:343,26'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:350,7'
              BranchSideFuncs:
                - _strdup
                - free
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:353,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:355,9'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:317,24'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:322,10'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:334,7'
          Dst:             GetEnvironmentVariableA
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:350,7'
          Dst:             _strdup
    - functionName:    WLog_Layout_SetPrefixFormat
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 296
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - layout
        - format
      BBCount:         9
      ICount:          57
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - _strdup
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:300,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:302,34'
              BranchSideFuncs:
                - _strdup
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:308,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:304,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:305,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:306,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:302,26'
          Dst:             _strdup
    - functionName:    WLog_GetLogLayout
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 289
      functionLinenumberEnd: 292
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
      BBCount:         3
      ICount:          23
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_GetLogAppender
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:291,13'
          Dst:             WLog_GetLogAppender
    - functionName:    WLog_PrintMessagePrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 84
      functionLinenumberEnd: 89
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - message
        - format
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WLog_PrintMessagePrefixVA
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:87,2'
          Dst:             WLog_PrintMessagePrefixVA
    - functionName:    replace_format_string
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 172
      functionLinenumberEnd: 221
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - FormatString
        - recurse
        - format
        - formatlen
      BBCount:         37
      ICount:          256
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - __assert_fail
        - bsearch
        - check_and_log_format_size
        - log_invalid_fmt
        - opt_compare_fn
        - snprintf
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:173,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:173,2'
              BranchSideFuncs:
                - __assert_fail
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:174,2'
              BranchSideFuncs:
                - __assert_fail
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:174,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:174,2'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:176,9'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:178,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:181,15'
              BranchSideFuncs:
                - bsearch
                - check_and_log_format_size
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:218,33'
              BranchSideFuncs:
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:183,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:185,24'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:209,9'
              BranchSideFuncs:
                - check_and_log_format_size
                - check_and_log_format_size
                - bsearch
                - snprintf
                - check_and_log_format_size
                - log_invalid_fmt
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:190,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:191,15'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:192,8'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:192,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:193,11'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:195,8'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:195,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:195,20'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:204,20'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:195,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:197,31'
              BranchSideFuncs:
                - snprintf
                - check_and_log_format_size
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:204,20'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:198,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:199,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:200,36'
              BranchSideFuncs:
                - check_and_log_format_size
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:200,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:201,6'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:202,14'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:209,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:210,28'
              BranchSideFuncs:
                - log_invalid_fmt
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:212,35'
              BranchSideFuncs:
                - check_and_log_format_size
                - check_and_log_format_size
                - bsearch
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:212,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:213,5'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:214,35'
              BranchSideFuncs:
                - check_and_log_format_size
                - bsearch
                - check_and_log_format_size
                - log_invalid_fmt
                - snprintf
                - check_and_log_format_size
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:218,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:219,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:220,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:173,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:174,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:181,7'
          Dst:             bsearch
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:181,7'
          Dst:             opt_compare_fn
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:197,20'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:200,10'
          Dst:             check_and_log_format_size
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:210,12'
          Dst:             log_invalid_fmt
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:212,9'
          Dst:             check_and_log_format_size
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:218,7'
          Dst:             check_and_log_format_size
    - functionName:    bsearch
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - 'N/A'
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    skip_if_null
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 139
      functionLinenumberEnd: 168
      functionDepth:   0
      returnType:      'N/A'
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - opt
        - fmt
        - preplacelen
        - pskiplen
      BBCount:         25
      ICount:          174
      EdgeCount:       29
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - replace_format_string
        - strnlen
        - strstr
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:140,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:140,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - strstr
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:141,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - strstr
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:141,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:141,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - strstr
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:142,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - strstr
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:142,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:142,2'
              BranchSideFuncs:
                - __assert_fail
                - strstr
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:143,2'
              BranchSideFuncs:
                - __assert_fail
                - strstr
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:143,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:143,2'
              BranchSideFuncs:
                - strstr
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:145,3'
              BranchSideFuncs:
                - strstr
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:150,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:151,3'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:152,14'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:155,3'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:157,28'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:160,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:160,2'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:160,2'
              BranchSideFuncs:
                - replace_format_string
                - strnlen
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:162,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:164,3'
              BranchSideFuncs:
                - strnlen
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:166,25'
              BranchSideFuncs:
                - strnlen
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:140,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:141,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:142,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:143,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:149,20'
          Dst:             strstr
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:162,7'
          Dst:             replace_format_string
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:166,17'
          Dst:             strnlen
    - functionName:    get_tid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 92
      functionLinenumberEnd: 102
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         3
      ICount:          27
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sprintf
        - syscall
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:97,16'
          Dst:             syscall
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:101,8'
          Dst:             sprintf
    - functionName:    WLog_Layout_GetMessagePrefix
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Layout.c'
      linkageType:     InternalLinkage
      functionLinenumber: 224
      functionLinenumberEnd: 286
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - log
        - layout
        - message
      BBCount:         12
      ICount:          444
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - GetCurrentProcessId
        - GetLocalTime
        - WLog_PrintMessagePrefix
        - __assert_fail
        - replace_format_string
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:227,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:227,2'
              BranchSideFuncs:
                - __assert_fail
                - GetLocalTime
                - GetCurrentProcessId
                - replace_format_string
                - WLog_PrintMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:228,2'
              BranchSideFuncs:
                - __assert_fail
                - GetLocalTime
                - GetCurrentProcessId
                - replace_format_string
                - WLog_PrintMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:228,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:228,2'
              BranchSideFuncs:
                - GetLocalTime
                - GetCurrentProcessId
                - replace_format_string
                - WLog_PrintMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:230,7'
              BranchSideFuncs:
                - GetLocalTime
                - GetCurrentProcessId
                - replace_format_string
                - WLog_PrintMessagePrefix
        - Branch String:   'winpr/libwinpr/utils/wlog/Layout.c:275,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:276,3'
              BranchSideFuncs:
                - WLog_PrintMessagePrefix
            - BranchSide:      'winpr/libwinpr/utils/wlog/Layout.c:281,26'
              BranchSideFuncs:
                - WLog_PrintMessagePrefix
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:227,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:228,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:232,2'
          Dst:             GetLocalTime
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:261,54'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:275,7'
          Dst:             replace_format_string
        - Src:             'winpr/libwinpr/utils/wlog/Layout.c:281,2'
          Dst:             WLog_PrintMessagePrefix
    - functionName:    WLog_Message_GetOutputFileName
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/Message.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 64
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - id
        - ext
      BBCount:         14
      ICount:          103
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - GetCombinedPath
        - GetCurrentProcessId
        - GetKnownSubPath
        - snprintf
        - winpr_PathFileExists
        - winpr_PathMakePath
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/Message.c:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:38,3'
              BranchSideFuncs:
                - GetKnownSubPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - free
                - free
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - free
                - free
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:40,13'
              BranchSideFuncs:
                - GetKnownSubPath
                - winpr_PathFileExists
                - winpr_PathMakePath
                - free
                - free
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - free
                - free
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/Message.c:42,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:44,27'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - free
                - free
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:52,14'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - free
                - free
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/Message.c:44,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:46,9'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - free
                - free
                - snprintf
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:50,2'
              BranchSideFuncs:
                - GetCurrentProcessId
                - snprintf
                - GetCombinedPath
                - free
                - free
                - snprintf
        - Branch String:   'winpr/libwinpr/utils/wlog/Message.c:53,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:54,19'
              BranchSideFuncs:
                - snprintf
                - GetCombinedPath
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/Message.c:56,19'
              BranchSideFuncs:
                - snprintf
                - GetCombinedPath
                - free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:40,13'
          Dst:             GetKnownSubPath
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:42,7'
          Dst:             winpr_PathFileExists
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:44,8'
          Dst:             winpr_PathMakePath
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:52,14'
          Dst:             GetCurrentProcessId
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:54,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:56,9'
          Dst:             snprintf
        - Src:             'winpr/libwinpr/utils/wlog/Message.c:58,17'
          Dst:             GetCombinedPath
    - functionName:    WLog_DataMessage_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/DataMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 32
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - filename
        - data
        - length
      BBCount:         9
      ICount:          60
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
        - fwrite
        - winpr_fopen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/DataMessage.c:38,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:41,3'
              BranchSideFuncs:
                - fwrite
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:44,13'
              BranchSideFuncs:
                - fwrite
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/DataMessage.c:44,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:45,7'
              BranchSideFuncs:
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/DataMessage.c:46,15'
              BranchSideFuncs:
                - fclose
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/DataMessage.c:36,7'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/wlog/DataMessage.c:44,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/wlog/DataMessage.c:46,8'
          Dst:             fclose
    - functionName:    WLog_ImageMessage_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/ImageMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 37
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - filename
        - data
        - width
        - height
        - bpp
      BBCount:         6
      ICount:          52
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - winpr_bitmap_write
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/ImageMessage.c:33,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/ImageMessage.c:34,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/ImageMessage.c:36,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/ImageMessage.c:31,11'
          Dst:             winpr_bitmap_write
    - functionName:    Stream_Rewind
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 133
      functionLinenumberEnd: 143
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         15
      ICount:          90
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:135,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:135,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:136,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:136,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:137,9'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:138,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:138,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:139,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/include/winpr/stream.h:139,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:140,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:142,17'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:135,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:136,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:138,3'
          Dst:             __assert_fail
    - functionName:    IPv4Checksum
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 273
      functionLinenumberEnd: 291
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - ipv4
        - length
      BBCount:         10
      ICount:          77
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:277,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:279,22'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:285,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:285,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:286,16'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:288,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:288,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:289,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:291,19'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    Stream_Write_UINT32_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 745
      functionLinenumberEnd: 749
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         6
      ICount:          42
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Write_UINT16_BE
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:746,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:746,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
            - BranchSide:      'winpr/include/winpr/stream.h:746,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:746,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:746,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:747,3'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/include/winpr/stream.h:748,3'
          Dst:             Stream_Write_UINT16_BE
    - functionName:    Stream_Write_UINT16_BE
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 703
      functionLinenumberEnd: 709
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    11
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:704,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:704,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:705,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:705,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:705,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:706,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:706,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:706,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:706,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:704,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:705,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:706,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:706,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:695,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:695,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:696,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:697,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:695,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:696,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:678,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:678,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:679,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:679,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:679,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:680,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:678,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:679,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:680,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:680,3'
          Dst:             __assert_fail
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:767,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:767,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3156
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3156
        - Branch String:   'winpr/include/winpr/stream.h:769,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3156
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3156
        - Branch String:   'winpr/include/winpr/stream.h:770,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3156
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3156
        - Branch String:   'winpr/include/winpr/stream.h:771,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_Seek.3156
            - BranchSide:      'winpr/include/winpr/stream.h:772,11'
              BranchSideFuncs:
                - Stream_Seek.3156
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:769,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:770,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:773,4'
          Dst:             Stream_Seek
    - functionName:    Pcap_Write_RecordContent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 159
      functionLinenumberEnd: 163
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - record
      BBCount:         11
      ICount:          59
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fwrite
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:160,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:160,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:162,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:160,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:160,33'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:162,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:160,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:161,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:162,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:160,26'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_TcpHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 328
      functionLinenumberEnd: 357
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - tcp
      BBCount:         19
      ICount:          150
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_StaticInit
        - Stream_Write_UINT16_BE
        - Stream_Write_UINT32_BE
        - Stream_Write_UINT8
        - fwrite
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:334,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:334,16'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:335,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:334,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:334,29'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:335,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:334,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:335,3'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:337,34'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:338,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:339,3'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:340,25'
              BranchSideFuncs:
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:350,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:352,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:356,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:352,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:353,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:354,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:337,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:340,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:341,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:342,2'
          Dst:             Stream_Write_UINT32_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:343,2'
          Dst:             Stream_Write_UINT32_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:344,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:345,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:346,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:347,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:348,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:352,7'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_IPv4Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 295
      functionLinenumberEnd: 325
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - ipv4
      BBCount:         16
      ICount:          165
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - IPv4Checksum
        - Stream_Rewind
        - Stream_StaticInit
        - Stream_Write_UINT16
        - Stream_Write_UINT16_BE
        - Stream_Write_UINT32_BE
        - Stream_Write_UINT8
        - fwrite
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:301,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:301,16'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16.3151
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - IPv4Checksum
                - Stream_Rewind.3137
                - Stream_Write_UINT16.3151
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:302,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:301,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:301,29'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16.3151
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - IPv4Checksum
                - Stream_Rewind.3137
                - Stream_Write_UINT16.3151
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:302,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:301,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:302,3'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16.3151
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - IPv4Checksum
                - Stream_Rewind.3137
                - Stream_Write_UINT16.3151
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:304,34'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16.3151
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - IPv4Checksum
                - Stream_Rewind.3137
                - Stream_Write_UINT16.3151
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:305,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:306,3'
              BranchSideFuncs:
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16.3151
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - IPv4Checksum
                - Stream_Rewind.3137
                - Stream_Write_UINT16.3151
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:307,21'
              BranchSideFuncs:
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT16_BE.3146
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT8.3153
                - Stream_Write_UINT16.3151
                - Stream_Write_UINT32_BE.3143
                - Stream_Write_UINT32_BE.3143
                - IPv4Checksum
                - Stream_Rewind.3137
                - Stream_Write_UINT16.3151
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:321,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:322,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:324,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:304,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:307,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:308,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:309,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:310,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:311,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:312,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:313,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:314,2'
          Dst:             Stream_Write_UINT16
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:315,2'
          Dst:             Stream_Write_UINT32_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:316,2'
          Dst:             Stream_Write_UINT32_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:317,25'
          Dst:             IPv4Checksum
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:318,2'
          Dst:             Stream_Rewind
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:319,2'
          Dst:             Stream_Write_UINT16
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:321,6'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write_EthernetHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - ethernet
      BBCount:         16
      ICount:          102
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - Stream_StaticInit
        - Stream_Write
        - Stream_Write_UINT16_BE
        - fwrite
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:257,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:257,16'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3159
                - Stream_Write.3159
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:258,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:257,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:257,29'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3159
                - Stream_Write.3159
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:258,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:258,3'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3159
                - Stream_Write.3159
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:260,34'
              BranchSideFuncs:
                - Stream_StaticInit
                - Stream_Write.3159
                - Stream_Write.3159
                - Stream_Write_UINT16_BE.3146
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:261,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:262,3'
              BranchSideFuncs:
                - Stream_Write.3159
                - Stream_Write.3159
                - Stream_Write_UINT16_BE.3146
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:263,15'
              BranchSideFuncs:
                - Stream_Write.3159
                - Stream_Write.3159
                - Stream_Write_UINT16_BE.3146
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:266,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:267,7'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:269,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:260,6'
          Dst:             Stream_StaticInit
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:263,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:264,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:265,2'
          Dst:             Stream_Write_UINT16_BE
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:266,6'
          Dst:             fwrite
    - functionName:    Pcap_Write_RecordHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 152
      functionLinenumberEnd: 156
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - record
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fwrite
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:153,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:153,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:155,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:153,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:153,40'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:155,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:153,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:154,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:155,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:153,26'
          Dst:             fwrite
    - functionName:    WLog_PacketMessage_Write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 363
      functionLinenumberEnd: 471
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - int
      constantsTouched: []
      argNames:
        - pcap
        - data
        - length
        - flags
      BBCount:         32
      ICount:          350
      EdgeCount:       42
      CyclomaticComplexity: 12
      functionsReached:
        - Pcap_Write_RecordHeader
        - WLog_PacketMessage_Write_EthernetHeader
        - WLog_PacketMessage_Write_IPv4Header
        - WLog_PacketMessage_Write_TcpHeader
        - __assert_fail
        - fflush
        - winpr_GetUnixTimeNS
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:370,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:370,16'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:371,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:370,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:371,3'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:373,6'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:373,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:376,12'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:393,12'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:419,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:421,8'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:426,8'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:433,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:435,24'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:441,24'
              BranchSideFuncs:
                - __assert_fail
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:455,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:455,2'
              BranchSideFuncs:
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:456,42'
              BranchSideFuncs:
                - winpr_GetUnixTimeNS
                - Pcap_Write_RecordHeader
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:464,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:465,47'
              BranchSideFuncs:
                - WLog_PacketMessage_Write_EthernetHeader
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:468,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:465,64'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:466,43'
              BranchSideFuncs:
                - WLog_PacketMessage_Write_IPv4Header
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:468,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:466,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:467,42'
              BranchSideFuncs:
                - WLog_PacketMessage_Write_TcpHeader
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:468,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:467,54'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:467,83'
              BranchSideFuncs:
                - Pcap_Write_RecordContent
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:468,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:464,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:468,3'
              BranchSideFuncs:
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:469,15'
              BranchSideFuncs:
                - fflush
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:455,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:460,14'
          Dst:             winpr_GetUnixTimeNS
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:464,7'
          Dst:             Pcap_Write_RecordHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:465,7'
          Dst:             WLog_PacketMessage_Write_EthernetHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:466,7'
          Dst:             WLog_PacketMessage_Write_IPv4Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:467,7'
          Dst:             WLog_PacketMessage_Write_TcpHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:467,58'
          Dst:             Pcap_Write_RecordContent
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:469,8'
          Dst:             fflush
    - functionName:    Pcap_Close
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 241
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached:
        - Pcap_Flush
        - fclose
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:242,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:242,16'
              BranchSideFuncs:
                - Pcap_Flush
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:243,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:242,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:243,3'
              BranchSideFuncs:
                - Pcap_Flush
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:245,13'
              BranchSideFuncs:
                - Pcap_Flush
                - fclose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:245,2'
          Dst:             Pcap_Flush
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:246,8'
          Dst:             fclose
    - functionName:    Pcap_Flush
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 226
      functionLinenumberEnd: 238
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
      BBCount:         14
      ICount:          68
      EdgeCount:       18
      CyclomaticComplexity: 6
      functionsReached:
        - Pcap_Write_Record
        - fflush
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:227,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:227,16'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:228,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:227,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:228,3'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:230,2'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:230,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:232,26'
              BranchSideFuncs:
                - Pcap_Write_Record
                - fflush
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:237,15'
              BranchSideFuncs:
                - fflush
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:232,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:233,4'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:234,18'
              BranchSideFuncs:
                - fflush
                - Pcap_Write_Record
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:232,8'
          Dst:             Pcap_Write_Record
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:237,8'
          Dst:             fflush
    - functionName:    Pcap_Write_Record
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 166
      functionLinenumberEnd: 167
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - record
      BBCount:         6
      ICount:          39
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Pcap_Write_RecordHeader
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:167,56'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:167,84'
              BranchSideFuncs:
                - Pcap_Write_RecordContent
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:167,56'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:167,9'
          Dst:             Pcap_Write_RecordHeader
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:167,59'
          Dst:             Pcap_Write_RecordContent
    - functionName:    Pcap_Read_Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - header
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fread
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:39,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:39,14'
              BranchSideFuncs:
                - fread
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:41,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:39,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:39,39'
              BranchSideFuncs:
                - fread
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:41,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:39,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:40,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:41,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:39,26'
          Dst:             fread
    - functionName:    Pcap_Write_Header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 149
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - pcap
        - header
      BBCount:         11
      ICount:          54
      EdgeCount:       14
      CyclomaticComplexity: 5
      functionsReached:
        - fwrite
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:146,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:146,14'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:148,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:146,23'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:146,40'
              BranchSideFuncs:
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:148,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:146,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:147,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:148,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:146,26'
          Dst:             fwrite
    - functionName:    Pcap_Open
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/wlog/PacketMessage.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 223
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - name
        - write
      BBCount:         37
      ICount:          220
      EdgeCount:       48
      CyclomaticComplexity: 13
      functionsReached:
        - Pcap_Read_Header
        - Pcap_Write_Header
        - WLog_Get
        - calloc
        - fclose
        - fseeko64
        - ftello64
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:175,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
              BranchSideFuncs:
                - calloc
                - free
                - fclose
                - fseeko64
                - ftello64
                - fseeko64
                - Pcap_Read_Header
                - Pcap_Write_Header
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:181,17'
              BranchSideFuncs:
                - calloc
                - free
                - fclose
                - fseeko64
                - ftello64
                - fseeko64
                - Pcap_Read_Header
                - Pcap_Write_Header
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:183,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:184,3'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - fseeko64
                - Pcap_Read_Header
                - free
                - fclose
                - Pcap_Write_Header
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:186,15'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - fseeko64
                - Pcap_Read_Header
                - free
                - fclose
                - Pcap_Write_Header
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:191,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:193,3'
              BranchSideFuncs:
                - Pcap_Write_Header
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:205,7'
              BranchSideFuncs:
                - fseeko64
                - ftello64
                - fseeko64
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:200,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:201,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:202,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:205,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:206,4'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:207,30'
              BranchSideFuncs:
                - ftello64
                - fseeko64
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:208,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:209,4'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:210,7'
              BranchSideFuncs:
                - fseeko64
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:210,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:211,4'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:212,25'
              BranchSideFuncs:
                - Pcap_Read_Header
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:212,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:213,4'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/wlog/PacketMessage.c:219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:220,16'
              BranchSideFuncs:
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/wlog/PacketMessage.c:221,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:173,18'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:177,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:181,17'
          Dst:             calloc
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:200,8'
          Dst:             Pcap_Write_Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:205,7'
          Dst:             fseeko64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:207,30'
          Dst:             ftello64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:210,7'
          Dst:             fseeko64
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:212,8'
          Dst:             Pcap_Read_Header
        - Src:             'winpr/libwinpr/utils/wlog/PacketMessage.c:220,9'
          Dst:             fclose
    - functionName:    IsProcessorFeaturePresentEx
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1015
      functionLinenumberEnd: 1227
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ProcessorFeature
      BBCount:         67
      ICount:          297
      EdgeCount:       77
      CyclomaticComplexity: 12
      functionsReached:
        - cpuid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1063,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1067,13'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1079,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1085,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1091,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1097,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1111,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1111,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1111,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1111,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1111,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1111,10'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1175,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1073,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1074,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1076,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1079,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1080,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1082,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1085,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1086,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1088,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1091,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1092,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1094,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1097,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1098,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1100,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1111,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1112,5'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1115,10'
              BranchSideFuncs:
                - cpuid
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1115,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1116,5'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1118,8'
              BranchSideFuncs:
                - cpuid
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1123,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1125,13'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1171,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1125,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1128,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1133,7'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1133,7'
              BranchSideFuncs:
                - cpuid
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1152,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1158,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1164,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1169,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1134,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1137,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1142,13'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1147,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1137,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1138,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1139,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1142,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1143,14'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1144,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1152,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1153,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1155,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1158,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1159,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1161,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1164,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1165,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1167,7'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1061,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1071,4'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1133,7'
          Dst:             cpuid
    - functionName:    cpuid
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 686
      functionLinenumberEnd: 712
      functionDepth:   0
      returnType:      void
      argCount:        5
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - info
        - eax
        - ebx
        - ecx
        - edx
      BBCount:         3
      ICount:          48
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetTickCountPrecise
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1002
      functionLinenumberEnd: 1010
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetTickCount
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:1010,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1010,9'
              BranchSideFuncs:
                - GetTickCount
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:1010,9'
              BranchSideFuncs:
                - GetTickCount
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:1010,9'
          Dst:             GetTickCount
    - functionName:    GetTickCount
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 331
      functionLinenumberEnd: 332
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          13
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:332,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:332,9'
              BranchSideFuncs:
                - winpr_GetTickCount64
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:332,9'
              BranchSideFuncs:
                - winpr_GetTickCount64
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:332,9'
          Dst:             winpr_GetTickCount64
    - functionName:    winpr_GetTickCount64
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 572
      functionLinenumberEnd: 574
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetTickCount64NS
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:573,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:573,15'
              BranchSideFuncs:
                - winpr_GetTickCount64NS
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:573,20'
              BranchSideFuncs:
                - winpr_GetTickCount64NS
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:573,20'
          Dst:             winpr_GetTickCount64NS
    - functionName:    winpr_GetTickCount64NS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 580
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          37
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clock_gettime
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:581,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:581,9'
              BranchSideFuncs:
                - clock_gettime
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:581,9'
              BranchSideFuncs:
                - clock_gettime
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:585,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:585,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:586,15'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:585,6'
          Dst:             clock_gettime
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    IsProcessorFeaturePresent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 785
      functionLinenumberEnd: 996
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - ProcessorFeature
      BBCount:         40
      ICount:          211
      EdgeCount:       45
      CyclomaticComplexity: 7
      functionsReached:
        - WLog_Get
        - cpuid
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:913,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:916,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:922,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:928,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:934,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:940,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:944,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:947,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:950,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:953,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:956,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:959,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:916,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:917,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:919,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:922,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:923,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:925,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:928,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:929,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:931,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:934,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:935,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:937,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:911,2'
          Dst:             cpuid
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:962,4'
          Dst:             WLog_PrintMessage
    - functionName:    GetComputerNameExW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 528
      functionLinenumberEnd: 556
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - NameType
        - lpBuffer
        - lpnSize
      BBCount:         16
      ICount:          111
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - ConvertUtf8NToWChar
        - GetComputerNameExA
        - SetLastError
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:532,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:534,3'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
                - calloc
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:538,7'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
                - calloc
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:538,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:540,23'
              BranchSideFuncs:
                - calloc
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:546,26'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:542,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:543,4'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:544,2'
              BranchSideFuncs:
                - GetComputerNameExA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:548,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:548,14'
              BranchSideFuncs:
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:554,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:548,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:550,17'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - free
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:554,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:534,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:540,15'
          Dst:             calloc
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:546,7'
          Dst:             GetComputerNameExA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:550,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetComputerNameExA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 472
      functionLinenumberEnd: 525
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - NameType
        - lpBuffer
        - lpnSize
      BBCount:         33
      ICount:          174
      EdgeCount:       40
      CyclomaticComplexity: 9
      functionsReached:
        - GetComputerNameA
        - GetLastError
        - SetLastError
        - gethostname
        - strnlen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:476,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:478,3'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - SetLastError
                - GetComputerNameA
                - GetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:482,7'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - SetLastError
                - GetComputerNameA
                - GetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:482,40'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:482,44'
              BranchSideFuncs:
                - GetComputerNameA
                - GetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:484,30'
              BranchSideFuncs:
                - GetComputerNameA
                - GetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:482,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:484,30'
              BranchSideFuncs:
                - GetComputerNameA
                - GetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:495,18'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:486,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:488,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:492,10'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:488,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:489,5'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:490,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:495,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:496,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:498,19'
              BranchSideFuncs:
                - strnlen
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:500,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,10'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:521,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:508,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:508,40'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:510,24'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:508,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:510,24'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:515,4'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:478,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:484,13'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:488,8'
          Dst:             GetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:489,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:495,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:498,11'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:511,5'
          Dst:             SetLastError
    - functionName:    GetComputerNameA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 438
      functionLinenumberEnd: 469
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpBuffer
        - lpnSize
      BBCount:         16
      ICount:          113
      EdgeCount:       21
      CyclomaticComplexity: 7
      functionsReached:
        - SetLastError
        - gethostname
        - strchr
        - strnlen
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:443,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:445,3'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - strchr
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:449,18'
              BranchSideFuncs:
                - gethostname
                - strnlen
                - strchr
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:449,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:450,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:452,19'
              BranchSideFuncs:
                - strnlen
                - strchr
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:455,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:456,13'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:458,8'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:458,34'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:458,38'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:460,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:458,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:460,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:465,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:445,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:449,6'
          Dst:             gethostname
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:452,11'
          Dst:             strnlen
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:453,8'
          Dst:             strchr
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:460,3'
          Dst:             SetLastError
    - functionName:    GetComputerNameW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 412
      functionLinenumberEnd: 435
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpBuffer
        - lpnSize
      BBCount:         19
      ICount:          116
      EdgeCount:       25
      CyclomaticComplexity: 8
      functionsReached:
        - ConvertUtf8NToWChar
        - GetComputerNameA
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:415,15'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:415,20'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
                - malloc
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:416,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:415,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:416,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:418,7'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
                - malloc
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:418,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:420,20'
              BranchSideFuncs:
                - malloc
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:424,24'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:421,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:422,4'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:423,2'
              BranchSideFuncs:
                - GetComputerNameA
                - free
                - ConvertUtf8NToWChar
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:426,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:426,14'
              BranchSideFuncs:
                - free
                - ConvertUtf8NToWChar
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:432,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:426,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:428,17'
              BranchSideFuncs:
                - ConvertUtf8NToWChar
                - free
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:432,7'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:424,7'
          Dst:             GetComputerNameA
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:428,23'
          Dst:             ConvertUtf8NToWChar
    - functionName:    GetSystemTimeAdjustment
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 321
      functionLinenumberEnd: 323
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpTimeAdjustment
        - lpTimeIncrement
        - lpTimeAdjustmentDisabled
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_GetUnixTimeNS
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 625
      functionLinenumberEnd: 646
      functionDepth:   0
      returnType:      size_t
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - clock_gettime
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:636,18'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:636,18'
              BranchSideFuncs:
                - clock_gettime
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:636,18'
              BranchSideFuncs:
                - clock_gettime
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:637,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:638,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:639,12'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:637,6'
          Dst:             clock_gettime
    - functionName:    GetSystemTimeAsFileTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 308
      functionLinenumberEnd: 317
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTimeAsFileTime
      BBCount:         3
      ICount:          22
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetUnixTimeNS
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:315,11'
          Dst:             winpr_GetUnixTimeNS
    - functionName:    SetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 302
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetLocalTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 278
      functionLinenumberEnd: 299
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         6
      ICount:          101
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetTickCount
        - localtime_r
        - time
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:288,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:288,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:290,32'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:283,7'
          Dst:             time
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:284,25'
          Dst:             GetTickCount
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:285,8'
          Dst:             localtime_r
    - 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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    localtime_r
      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:    SetSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 274
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         1
      ICount:          7
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetSystemTime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 248
      functionLinenumberEnd: 269
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemTime
      BBCount:         6
      ICount:          101
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - GetTickCount
        - gmtime_r
        - time
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:258,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:258,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:260,32'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:253,7'
          Dst:             time
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:254,25'
          Dst:             GetTickCount
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:255,8'
          Dst:             gmtime_r
    - functionName:    gmtime_r
      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:    GetNativeSystemInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 245
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemInfo
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetSystemInfo
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:244,2'
          Dst:             GetSystemInfo
    - functionName:    GetSystemInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 228
      functionLinenumberEnd: 240
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpSystemInfo
      BBCount:         3
      ICount:          53
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - GetNumberOfProcessors
        - GetProcessorArchitecture
        - GetSystemPageSize
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:229,41'
          Dst:             GetProcessorArchitecture
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:231,29'
          Dst:             GetSystemPageSize
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:235,39'
          Dst:             GetNumberOfProcessors
    - functionName:    GetProcessorArchitecture
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 111
      functionLinenumberEnd: 160
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          9
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetSystemPageSize
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 202
      functionLinenumberEnd: 224
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         15
      ICount:          74
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - sysconf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:203,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:203,8'
              BranchSideFuncs:
                - sysconf
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:203,8'
              BranchSideFuncs:
                - sysconf
                - sysconf
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:207,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:208,18'
              BranchSideFuncs:
                - sysconf
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:213,6'
              BranchSideFuncs:
                - sysconf
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:213,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:214,18'
              BranchSideFuncs:
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:218,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:218,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:219,23'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:221,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:221,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:221,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:222,14'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:208,18'
          Dst:             sysconf
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:214,18'
          Dst:             sysconf
    - functionName:    GetNumberOfProcessors
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/sysinfo/sysinfo.c'
      linkageType:     InternalLinkage
      functionLinenumber: 164
      functionLinenumberEnd: 198
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          18
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - sysconf
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/sysinfo/sysinfo.c:165,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:165,8'
              BranchSideFuncs:
                - sysconf
            - BranchSide:      'winpr/libwinpr/sysinfo/sysinfo.c:165,8'
              BranchSideFuncs:
                - sysconf
      Callsites:
        - Src:             'winpr/libwinpr/sysinfo/sysinfo.c:170,19'
          Dst:             sysconf
    - functionName:    SetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 77
      functionLinenumberEnd: 78
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - hObject
        - dwMask
        - dwFlags
      BBCount:         1
      ICount:          13
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    GetHandleInformation
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 73
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hObject
        - lpdwFlags
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    DuplicateHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 66
      functionLinenumberEnd: 68
      functionDepth:   0
      returnType:      int
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - int
        - int
        - int
      constantsTouched: []
      argNames:
        - hSourceProcessHandle
        - hSourceHandle
        - hTargetProcessHandle
        - lpTargetHandle
        - dwDesiredAccess
        - bInheritHandle
        - dwOptions
      BBCount:         1
      ICount:          29
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/../synch/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/handle/../synch/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/../synch/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/../synch/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/handle/../synch/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/../synch/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/../synch/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 44
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hObject
      BBCount:         12
      ICount:          76
      EdgeCount:       16
      CyclomaticComplexity: 6
      functionsReached:
        - winpr_Handle_GetInfo
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/handle/handle.c:48,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.c:49,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/handle.c:51,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/handle/handle.c:51,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.c:52,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/handle.c:54,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/handle/handle.c:54,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.c:55,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/handle.c:57,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/handle/handle.c:57,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.c:58,10'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/handle.c:60,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.c:48,7'
          Dst:             winpr_Handle_GetInfo
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    NoneHandleGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 42
      functionLinenumberEnd: 47
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - NoneHandleIsHandle
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/handle/nonehandle.c:43,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:44,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:46,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:43,7'
          Dst:             NoneHandleIsHandle
    - functionName:    NoneHandleIsHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 37
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:38,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - functionName:    NoneHandleCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 33
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          20
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateNoneHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/handle/nonehandle.c'
      linkageType:     InternalLinkage
      functionLinenumber: 72
      functionLinenumberEnd: 80
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          35
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/handle/nonehandle.c:73,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:73,48'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:73,48'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/handle/nonehandle.c:75,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:76,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/handle/nonehandle.c:78,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/handle/nonehandle.c:73,48'
          Dst:             calloc
    - functionName:    apc_cleanupThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 243
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         19
      ICount:          126
      EdgeCount:       22
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:248,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:248,2'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:250,9'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:251,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:251,2'
              BranchSideFuncs:
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:253,22'
              BranchSideFuncs:
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:257,14'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:268,14'
              BranchSideFuncs:
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:259,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:260,4'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:262,16'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:264,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:265,9'
              BranchSideFuncs:
                - free
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:266,2'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:248,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:251,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:253,2'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/apc.c:269,2'
          Dst:             pthread_mutex_unlock
    - 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:    6
      BranchProfiles:  []
      Callsites:       []
    - functionName:    apc_executeCompletions
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 188
      functionLinenumberEnd: 239
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - thread
        - set
        - startIndex
      BBCount:         41
      ICount:          248
      EdgeCount:       51
      CyclomaticComplexity: 12
      functionsReached:
        - __assert_fail
        - apc_item_remove
        - pollset_isSignaled
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:194,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:194,2'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
            - BranchSide:      'winpr/libwinpr/thread/apc.c:196,9'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
        - Branch String:   'winpr/libwinpr/thread/apc.c:197,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:197,2'
              BranchSideFuncs:
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
            - BranchSide:      'winpr/libwinpr/thread/apc.c:199,22'
              BranchSideFuncs:
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
        - Branch String:   'winpr/libwinpr/thread/apc.c:203,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:205,22'
              BranchSideFuncs:
                - pollset_isSignaled
                - pthread_mutex_unlock
                - apc_item_remove
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:211,30'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:205,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:205,43'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
            - BranchSide:      'winpr/libwinpr/thread/apc.c:205,65'
              BranchSideFuncs:
                - pollset_isSignaled
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:206,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:207,7'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
            - BranchSide:      'winpr/libwinpr/thread/apc.c:208,2'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
                - pollset_isSignaled
        - Branch String:   'winpr/libwinpr/thread/apc.c:211,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:213,7'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:224,30'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:213,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:215,8'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:220,14'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:215,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:215,29'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:217,7'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:215,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:216,5'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:217,7'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:224,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:226,14'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:236,2'
              BranchSideFuncs:
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:228,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:230,20'
              BranchSideFuncs:
                - apc_item_remove
                - pthread_mutex_unlock
                - free
            - BranchSide:      'winpr/libwinpr/thread/apc.c:234,2'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
        - Branch String:   'winpr/libwinpr/thread/apc.c:231,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:232,10'
              BranchSideFuncs:
                - free
                - pthread_mutex_unlock
                - apc_item_remove
            - BranchSide:      'winpr/libwinpr/thread/apc.c:233,3'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - apc_item_remove
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:194,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:197,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:199,2'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/apc.c:205,46'
          Dst:             pollset_isSignaled
        - Src:             'winpr/libwinpr/thread/apc.c:230,4'
          Dst:             apc_item_remove
        - Src:             'winpr/libwinpr/thread/apc.c:237,2'
          Dst:             pthread_mutex_unlock
    - functionName:    apc_item_remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 96
      functionLinenumberEnd: 111
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - apc
        - item
      BBCount:         15
      ICount:          94
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:97,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:97,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/thread/apc.c:98,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/thread/apc.c:98,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:98,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/apc.c:100,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/apc.c:100,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:101,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/apc.c:103,22'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/apc.c:105,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:106,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/apc.c:108,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:97,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:98,2'
          Dst:             __assert_fail
    - functionName:    apc_collectFds
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 157
      functionLinenumberEnd: 184
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
        - set
        - haveAutoSignaled
      BBCount:         22
      ICount:          122
      EdgeCount:       25
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - pollset_add
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:162,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:162,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:163,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
        - Branch String:   'winpr/libwinpr/thread/apc.c:163,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:163,2'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:165,9'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
        - Branch String:   'winpr/libwinpr/thread/apc.c:166,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:166,2'
              BranchSideFuncs:
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:168,3'
              BranchSideFuncs:
                - pthread_mutex_lock
                - pthread_mutex_unlock
                - pollset_add
        - Branch String:   'winpr/libwinpr/thread/apc.c:171,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:173,7'
              BranchSideFuncs:
                - pollset_add
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:181,6'
              BranchSideFuncs:
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:173,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:175,5'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:177,25'
              BranchSideFuncs:
                - pollset_add
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:177,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:0,0'
              BranchSideFuncs:
                - pthread_mutex_unlock
                - pollset_add
            - BranchSide:      'winpr/libwinpr/thread/apc.c:178,4'
              BranchSideFuncs:
                - pthread_mutex_unlock
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:162,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:163,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:166,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:169,2'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/apc.c:177,13'
          Dst:             pollset_add
        - Src:             'winpr/libwinpr/thread/apc.c:183,2'
          Dst:             pthread_mutex_unlock
    - functionName:    apc_remove
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 114
      functionLinenumberEnd: 154
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - item
      BBCount:         43
      ICount:          183
      EdgeCount:       51
      CyclomaticComplexity: 10
      functionsReached:
        - GetCurrentThreadId
        - WLog_Get
        - __assert_fail
        - apc_item_remove
        - pthread_mutex_lock
        - pthread_mutex_unlock
        - winpr_GetCurrentThread
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:119,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:119,2'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:121,7'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:122,3'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:124,6'
              BranchSideFuncs:
                - GetCurrentThreadId
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:124,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:126,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:130,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:126,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:126,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:126,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:126,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:126,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:126,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/apc.c:130,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:132,3'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:136,9'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:132,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:132,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:132,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:132,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:132,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:132,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/apc.c:137,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:137,2'
              BranchSideFuncs:
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:139,22'
              BranchSideFuncs:
                - pthread_mutex_lock
                - apc_item_remove
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:140,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:142,3'
              BranchSideFuncs:
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:147,18'
              BranchSideFuncs:
                - apc_item_remove
                - pthread_mutex_unlock
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:115,25'
          Dst:             winpr_GetCurrentThread
        - Src:             'winpr/libwinpr/thread/apc.c:119,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:124,27'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/thread/apc.c:126,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/apc.c:126,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/apc.c:126,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/apc.c:132,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/apc.c:132,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/apc.c:132,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/apc.c:137,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:139,2'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/apc.c:147,2'
          Dst:             apc_item_remove
        - Src:             'winpr/libwinpr/thread/apc.c:150,2'
          Dst:             pthread_mutex_unlock
    - functionName:    apc_register
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 93
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
        - addItem
      BBCount:         15
      ICount:          108
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - GetCurrentThreadId
        - __assert_fail
        - pthread_mutex_lock
        - pthread_mutex_unlock
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:68,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:68,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:69,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:69,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:69,2'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:71,9'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:72,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:72,2'
              BranchSideFuncs:
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:74,22'
              BranchSideFuncs:
                - pthread_mutex_lock
                - GetCurrentThreadId
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/apc.c:75,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:77,12'
              BranchSideFuncs:
                - GetCurrentThreadId
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/apc.c:82,12'
              BranchSideFuncs:
                - GetCurrentThreadId
                - pthread_mutex_unlock
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:68,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:69,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:72,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:74,2'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/apc.c:90,25'
          Dst:             GetCurrentThreadId
        - Src:             'winpr/libwinpr/thread/apc.c:92,2'
          Dst:             pthread_mutex_unlock
    - functionName:    apc_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 58
      functionLinenumberEnd: 60
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - apc
      BBCount:         6
      ICount:          32
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_destroy
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:59,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:59,2'
              BranchSideFuncs:
                - pthread_mutex_destroy
            - BranchSide:      'winpr/libwinpr/thread/apc.c:59,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:59,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:60,9'
          Dst:             pthread_mutex_destroy
    - 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:    3
      BranchProfiles:  []
      Callsites:       []
    - functionName:    apc_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/apc.c'
      linkageType:     InternalLinkage
      functionLinenumber: 30
      functionLinenumberEnd: 55
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - apc
      BBCount:         36
      ICount:          130
      EdgeCount:       42
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Get
        - __assert_fail
        - pthread_mutex_init
        - pthread_mutexattr_destroy
        - pthread_mutexattr_init
        - pthread_mutexattr_settype
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/apc.c:34,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:34,2'
              BranchSideFuncs:
                - pthread_mutexattr_init
                - pthread_mutexattr_settype
                - pthread_mutex_init
                - pthread_mutexattr_destroy
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:36,2'
              BranchSideFuncs:
                - pthread_mutexattr_init
                - pthread_mutexattr_settype
                - pthread_mutex_init
                - pthread_mutexattr_destroy
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:39,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:43,9'
              BranchSideFuncs:
                - pthread_mutex_init
                - pthread_mutexattr_destroy
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:39,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:39,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:39,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:39,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:39,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:39,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/apc.c:45,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:47,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_mutexattr_destroy
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:51,6'
              BranchSideFuncs:
                - pthread_mutexattr_destroy
        - Branch String:   'winpr/libwinpr/thread/apc.c:47,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:47,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pthread_mutexattr_destroy
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/apc.c:47,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_mutexattr_destroy
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/apc.c:47,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/apc.c:47,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pthread_mutexattr_destroy
            - BranchSide:      'winpr/libwinpr/thread/apc.c:47,3'
              BranchSideFuncs:
                - pthread_mutexattr_destroy
      Callsites:
        - Src:             'winpr/libwinpr/thread/apc.c:34,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/apc.c:36,2'
          Dst:             pthread_mutexattr_init
        - Src:             'winpr/libwinpr/thread/apc.c:37,6'
          Dst:             pthread_mutexattr_settype
        - Src:             'winpr/libwinpr/thread/apc.c:39,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/apc.c:39,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/apc.c:39,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/apc.c:45,6'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/apc.c:47,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/apc.c:47,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/apc.c:47,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/apc.c:53,2'
          Dst:             pthread_mutexattr_destroy
    - 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:    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:    3
      BranchProfiles:  []
      Callsites:       []
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CommandLineToArgvW
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/argv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 275
      functionLinenumberEnd: 276
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCmdLine
        - pNumArgs
      BBCount:         1
      ICount:          10
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CommandLineToArgvA
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/argv.c'
      linkageType:     InternalLinkage
      functionLinenumber: 90
      functionLinenumberEnd: 270
      functionDepth:   0
      returnType:      'N/A'
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpCmdLine
        - pNumArgs
      BBCount:         85
      ICount:          603
      EdgeCount:       111
      CyclomaticComplexity: 28
      functionsReached:
        - WLog_Get
        - calloc
        - strcspn
        - strlen
        - strspn
        - strstr
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/argv.c:105,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:106,3'
              BranchSideFuncs:
                - strlen
                - calloc
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:108,7'
              BranchSideFuncs:
                - strlen
                - calloc
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:108,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:109,3'
              BranchSideFuncs:
                - strlen
                - calloc
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:111,8'
              BranchSideFuncs:
                - strlen
                - calloc
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:116,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:117,3'
              BranchSideFuncs:
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:119,13'
              BranchSideFuncs:
                - strstr
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - calloc
                - free
                - strlen
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:119,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:121,10'
              BranchSideFuncs:
                - calloc
                - free
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:183,13'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
        - Branch String:   'winpr/libwinpr/thread/argv.c:125,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:127,9'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:131,20'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:135,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:137,18'
              BranchSideFuncs:
                - strstr
                - strlen
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
            - BranchSide:      'winpr/libwinpr/thread/argv.c:178,11'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
        - Branch String:   'winpr/libwinpr/thread/argv.c:139,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:141,21'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:147,11'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:149,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:151,10'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:160,10'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:151,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:153,10'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:157,9'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:166,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:167,13'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:169,9'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:171,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:172,5'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
            - BranchSide:      'winpr/libwinpr/thread/argv.c:174,12'
              BranchSideFuncs:
                - strlen
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
                - strspn
                - strstr
                - strlen
        - Branch String:   'winpr/libwinpr/thread/argv.c:186,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:188,16'
              BranchSideFuncs:
                - strcspn
                - strspn
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:193,19'
              BranchSideFuncs:
                - calloc
                - free
                - free
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:198,8'
              BranchSideFuncs:
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:203,18'
              BranchSideFuncs:
                - free
                - free
                - strcspn
                - strcspn
                - strspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:209,10'
              BranchSideFuncs:
                - strcspn
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:266,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/thread/argv.c:215,20'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:215,24'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:216,5'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:215,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:216,5'
              BranchSideFuncs:
                - strcspn
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:218,5'
              BranchSideFuncs:
                - strcspn
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:221,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:224,14'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:232,5'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:238,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:238,25'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:239,6'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:238,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:239,6'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:241,6'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:244,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:245,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:247,9'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
        - Branch String:   'winpr/libwinpr/thread/argv.c:245,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:245,5'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - strcspn
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:245,5'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:245,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:245,5'
              BranchSideFuncs:
                - WLog_PrintMessage
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - strcspn
            - BranchSide:      'winpr/libwinpr/thread/argv.c:245,5'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
        - Branch String:   'winpr/libwinpr/thread/argv.c:247,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:247,16'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - strcspn
            - BranchSide:      'winpr/libwinpr/thread/argv.c:250,23'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:247,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:248,18'
              BranchSideFuncs:
                - strcspn
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:250,23'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:252,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:254,10'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:260,12'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/argv.c:254,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/argv.c:255,20'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/argv.c:257,9'
              BranchSideFuncs:
                - strspn
                - free
                - free
                - strcspn
                - strcspn
                - strcspn
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
      Callsites:
        - Src:             'winpr/libwinpr/thread/argv.c:113,18'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/argv.c:114,26'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/argv.c:119,6'
          Dst:             strstr
        - Src:             'winpr/libwinpr/thread/argv.c:123,29'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/argv.c:137,11'
          Dst:             strstr
        - Src:             'winpr/libwinpr/thread/argv.c:141,14'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/argv.c:180,19'
          Dst:             strlen
        - Src:             'winpr/libwinpr/thread/argv.c:188,8'
          Dst:             strcspn
        - Src:             'winpr/libwinpr/thread/argv.c:189,8'
          Dst:             strspn
        - Src:             'winpr/libwinpr/thread/argv.c:194,11'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/argv.c:213,9'
          Dst:             strcspn
        - Src:             'winpr/libwinpr/thread/argv.c:236,10'
          Dst:             strcspn
        - Src:             'winpr/libwinpr/thread/argv.c:245,5'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/argv.c:245,5'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/argv.c:245,5'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/argv.c:248,10'
          Dst:             strcspn
        - Src:             'winpr/libwinpr/thread/argv.c:263,8'
          Dst:             strspn
    - 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:    4
      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:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mux_condition_bundle_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 225
      functionLinenumberEnd: 233
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         6
      ICount:          37
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_cond_destroy
        - pthread_mutex_destroy
        - run_cond_fkt_
        - run_mutex_fkt_
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:228,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:228,2'
              BranchSideFuncs:
                - run_cond_fkt_
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:228,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:228,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:230,2'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:230,2'
          Dst:             pthread_cond_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:231,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:231,2'
          Dst:             pthread_mutex_destroy
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    run_cond_fkt_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 189
      functionLinenumberEnd: 201
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - condition
      BBCount:         24
      ICount:          104
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:192,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:192,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:193,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:193,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:193,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:195,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:196,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:198,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:199,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:199,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:199,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:199,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:199,3'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:199,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:192,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:193,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:199,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:199,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:199,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:199,3'
          Dst:             WLog_PrintMessage
    - functionName:    run_mutex_fkt_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 153
      functionLinenumberEnd: 165
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - mutex
      BBCount:         24
      ICount:          104
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_strerror
      functionUses:    13
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:156,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:156,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:157,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:157,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:157,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:159,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:160,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:160,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:162,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:163,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:163,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:163,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:163,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:163,3'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:163,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:156,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:157,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:163,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:163,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:163,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:163,3'
          Dst:             WLog_PrintMessage
    - functionName:    mux_condition_bundle_signal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 236
      functionLinenumberEnd: 248
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         15
      ICount:          75
      EdgeCount:       18
      CyclomaticComplexity: 5
      functionsReached:
        - __assert_fail
        - pthread_cond_signal
        - pthread_mutex_lock
        - run_cond_fkt_
        - run_mutex_fkt_
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:238,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:238,2'
              BranchSideFuncs:
                - run_mutex_fkt_
                - run_cond_fkt_
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:240,7'
              BranchSideFuncs:
                - run_mutex_fkt_
                - run_cond_fkt_
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:240,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:241,3'
              BranchSideFuncs:
                - run_cond_fkt_
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:242,2'
              BranchSideFuncs:
                - run_cond_fkt_
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:243,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:244,6'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:245,7'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:245,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:246,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:247,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:238,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:240,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:240,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:243,7'
          Dst:             run_cond_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:243,7'
          Dst:             pthread_cond_signal
        - Src:             'winpr/libwinpr/thread/thread.c:245,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:245,7'
          Dst:             pthread_mutex_checked_unlock
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    pthread_mutex_checked_unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 205
      functionLinenumberEnd: 208
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - mutex
      BBCount:         9
      ICount:          39
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_trylock
        - pthread_mutex_unlock
      functionUses:    6
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:206,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:206,2'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - __assert_fail
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:207,2'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - __assert_fail
                - pthread_mutex_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:207,2'
              BranchSideFuncs:
                - pthread_mutex_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:207,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:206,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:207,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:207,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:208,9'
          Dst:             pthread_mutex_unlock
    - functionName:    pthread_mutex_trylock
      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:    signal_thread_ready
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 299
      functionLinenumberEnd: 302
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - mux_condition_bundle_signal
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:300,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:300,2'
              BranchSideFuncs:
                - mux_condition_bundle_signal
            - BranchSide:      'winpr/libwinpr/thread/thread.c:300,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:300,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:302,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    signal_and_wait_for_ready
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 476
      functionLinenumberEnd: 505
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         16
      ICount:          81
      EdgeCount:       20
      CyclomaticComplexity: 6
      functionsReached:
        - __assert_fail
        - mux_condition_bundle_lock
        - mux_condition_bundle_unlock
        - mux_condition_bundle_wait
        - signal_thread_ready
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:479,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:479,2'
              BranchSideFuncs:
                - mux_condition_bundle_lock
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
            - BranchSide:      'winpr/libwinpr/thread/thread.c:481,34'
              BranchSideFuncs:
                - mux_condition_bundle_lock
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
        - Branch String:   'winpr/libwinpr/thread/thread.c:481,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:482,3'
              BranchSideFuncs:
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
            - BranchSide:      'winpr/libwinpr/thread/thread.c:484,27'
              BranchSideFuncs:
                - signal_thread_ready
                - mux_condition_bundle_unlock
                - mux_condition_bundle_wait
        - Branch String:   'winpr/libwinpr/thread/thread.c:484,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:485,3'
              BranchSideFuncs:
                - mux_condition_bundle_wait
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:487,34'
              BranchSideFuncs:
                - mux_condition_bundle_wait
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:487,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:488,3'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:498,6'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:501,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:502,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:504,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:479,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:481,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:484,7'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:487,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:501,7'
          Dst:             mux_condition_bundle_unlock
    - functionName:    mux_condition_bundle_lock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 251
      functionLinenumberEnd: 253
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - pthread_mutex_lock
        - run_mutex_fkt_
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:252,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:252,2'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:252,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:252,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:253,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:253,9'
          Dst:             pthread_mutex_lock
    - functionName:    mux_condition_bundle_wait
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 263
      functionLinenumberEnd: 295
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
        - name
      BBCount:         38
      ICount:          152
      EdgeCount:       41
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - pthread_cond_wait
        - pthread_mutex_trylock
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:266,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:266,2'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_trylock
                - __assert_fail
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:267,2'
              BranchSideFuncs:
                - __assert_fail
                - pthread_mutex_trylock
                - __assert_fail
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:267,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:267,2'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - __assert_fail
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:268,2'
              BranchSideFuncs:
                - pthread_mutex_trylock
                - __assert_fail
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:268,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:268,2'
              BranchSideFuncs:
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:270,2'
              BranchSideFuncs:
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:270,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:272,30'
              BranchSideFuncs:
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:292,7'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:273,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:270,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_cond_wait
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:275,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_cond_wait
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:276,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:276,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pthread_cond_wait
                - WLog_Get
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:276,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_cond_wait
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:276,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:276,4'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
            - BranchSide:      'winpr/libwinpr/thread/thread.c:276,4'
              BranchSideFuncs:
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:278,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:284,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:284,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:284,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:284,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:287,6'
              BranchSideFuncs:
                - pthread_cond_wait
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:266,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:267,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:268,2'
          Dst:             pthread_mutex_trylock
        - Src:             'winpr/libwinpr/thread/thread.c:268,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:272,11'
          Dst:             pthread_cond_wait
        - Src:             'winpr/libwinpr/thread/thread.c:276,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:276,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:276,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:276,4'
          Dst:             WLog_PrintMessage
    - functionName:    mux_condition_bundle_unlock
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 257
      functionLinenumberEnd: 259
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - run_mutex_fkt_
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:258,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:258,2'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:258,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:258,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:259,9'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:259,9'
          Dst:             pthread_mutex_checked_unlock
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    signal_thread_is_running
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 306
      functionLinenumberEnd: 309
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - mux_condition_bundle_signal
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:307,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:307,2'
              BranchSideFuncs:
                - mux_condition_bundle_signal
            - BranchSide:      'winpr/libwinpr/thread/thread.c:307,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:307,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:309,9'
          Dst:             mux_condition_bundle_signal
    - functionName:    thread_launcher
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 511
      functionLinenumberEnd: 561
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         60
      ICount:          241
      EdgeCount:       74
      CyclomaticComplexity: 16
      functionsReached:
        - TlsSetValue
        - WLog_Get
        - apc_cleanupThread
        - cleanup_handle
        - pthread_self
        - set_event
        - signal_and_wait_for_ready
        - signal_thread_ready
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:516,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:518,3'
              BranchSideFuncs:
                - TlsSetValue
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - pthread_self
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - signal_and_wait_for_ready
            - BranchSide:      'winpr/libwinpr/thread/thread.c:522,19'
              BranchSideFuncs:
                - TlsSetValue
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - pthread_self
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - signal_and_wait_for_ready
        - Branch String:   'winpr/libwinpr/thread/thread.c:518,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:518,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:518,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:518,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:518,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:518,3'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:522,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:524,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_PrintMessage
                - signal_and_wait_for_ready
            - BranchSide:      'winpr/libwinpr/thread/thread.c:528,14'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_PrintMessage
                - signal_and_wait_for_ready
        - Branch String:   'winpr/libwinpr/thread/thread.c:524,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:524,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - pthread_self
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:524,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - pthread_self
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:524,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:524,3'
              BranchSideFuncs:
                - pthread_self
                - WLog_PrintMessage
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:524,3'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:528,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:535,13'
              BranchSideFuncs:
                - signal_and_wait_for_ready
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:540,33'
              BranchSideFuncs:
                - signal_and_wait_for_ready
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:536,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:536,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:536,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:536,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:536,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:536,3'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:540,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:541,3'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:543,7'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:546,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:546,6'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:548,21'
              BranchSideFuncs:
                - apc_cleanupThread
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:550,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:551,25'
              BranchSideFuncs:
                - set_event
                - signal_thread_ready
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:553,13'
              BranchSideFuncs:
                - set_event
                - signal_thread_ready
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:557,24'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:557,28'
              BranchSideFuncs:
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:558,19'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:557,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:558,19'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:559,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:518,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:518,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:518,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:522,7'
          Dst:             TlsSetValue
        - Src:             'winpr/libwinpr/thread/thread.c:524,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:524,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:524,3'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:524,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:536,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:536,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:536,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:540,7'
          Dst:             signal_and_wait_for_ready
        - Src:             'winpr/libwinpr/thread/thread.c:548,3'
          Dst:             apc_cleanupThread
        - Src:             'winpr/libwinpr/thread/thread.c:553,3'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:555,3'
          Dst:             signal_thread_ready
        - Src:             'winpr/libwinpr/thread/thread.c:558,4'
          Dst:             cleanup_handle
    - 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:    4
      BranchProfiles:  []
      Callsites:       []
    - functionName:    set_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 419
      functionLinenumberEnd: 420
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_event_set
      functionUses:    3
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:420,9'
          Dst:             winpr_event_set
    - functionName:    cleanup_handle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 743
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - obj
      BBCount:         21
      ICount:          88
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - apc_uninit
        - mux_condition_bundle_uninit
        - pthread_mutex_destroy
        - run_mutex_fkt_
        - winpr_event_uninit
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:745,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:746,3'
              BranchSideFuncs:
                - apc_uninit
                - WLog_Get
                - WLog_IsLevelActive
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:748,19'
              BranchSideFuncs:
                - apc_uninit
                - WLog_Get
                - WLog_IsLevelActive
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:748,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:749,3'
              BranchSideFuncs:
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
            - BranchSide:      'winpr/libwinpr/thread/thread.c:751,31'
              BranchSideFuncs:
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
        - Branch String:   'winpr/libwinpr/thread/thread.c:749,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:749,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:749,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:749,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:749,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
            - BranchSide:      'winpr/libwinpr/thread/thread.c:749,3'
              BranchSideFuncs:
                - mux_condition_bundle_uninit
                - mux_condition_bundle_uninit
                - run_mutex_fkt_
                - winpr_event_uninit
                - free
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:748,7'
          Dst:             apc_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:749,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:749,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:749,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:751,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:752,2'
          Dst:             mux_condition_bundle_uninit
        - Src:             'winpr/libwinpr/thread/thread.c:753,2'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:753,2'
          Dst:             pthread_mutex_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:755,2'
          Dst:             winpr_event_uninit
    - functionName:    reset_event
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 424
      functionLinenumberEnd: 425
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         3
      ICount:          17
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_event_reset
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:425,9'
          Dst:             winpr_event_reset
    - functionName:    run_cond_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 171
      functionLinenumberEnd: 183
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - condition
        - conditionattr
      BBCount:         24
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_strerror
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:174,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:174,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:175,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:175,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:175,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:177,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:178,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:178,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:180,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:181,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:181,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:181,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:181,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:181,3'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:181,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:174,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:175,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:181,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:181,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:181,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:181,3'
          Dst:             WLog_PrintMessage
    - functionName:    dump_thread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 370
      functionLinenumberEnd: 412
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    2
      BranchProfiles:  []
      Callsites:       []
    - functionName:    WINPR_HANDLE_IS_HANDLED
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - handle
        - type
        - invalidValue
      BBCount:         15
      ICount:          81
      EdgeCount:       19
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:121,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:123,31'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:127,6'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:123,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:124,12'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:125,2'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:127,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:127,18'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:127,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:129,3'
              BranchSideFuncs:
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:133,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/../handle/handle.h:129,3'
          Dst:             SetLastError
    - functionName:    ThreadCleanupHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 313
      functionLinenumberEnd: 345
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         29
      ICount:          138
      EdgeCount:       36
      CyclomaticComplexity: 9
      functionsReached:
        - ThreadIsHandled
        - WLog_Get
        - pthread_join
        - pthread_mutex_lock
        - run_mutex_fkt_
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:317,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:318,3'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_join
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:320,7'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_join
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:320,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:321,3'
              BranchSideFuncs:
                - pthread_join
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:323,7'
              BranchSideFuncs:
                - pthread_join
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:323,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:325,25'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:338,9'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:327,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:329,9'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:335,4'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:330,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:330,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:330,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:330,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:330,4'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:330,4'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:341,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:342,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:344,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:317,7'
          Dst:             ThreadIsHandled
        - Src:             'winpr/libwinpr/thread/thread.c:320,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:320,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:325,12'
          Dst:             pthread_join
        - Src:             'winpr/libwinpr/thread/thread.c:330,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:330,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:330,4'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:330,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:341,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:341,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    ThreadIsHandled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 117
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         3
      ICount:          16
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - WINPR_HANDLE_IS_HANDLED
      functionUses:    2
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:118,9'
          Dst:             WINPR_HANDLE_IS_HANDLED
    - 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:    ThreadGetFd
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 122
      functionLinenumberEnd: 129
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         6
      ICount:          40
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - ThreadIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:125,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:126,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:128,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:125,7'
          Dst:             ThreadIsHandled
    - functionName:    ThreadCloseHandle
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 773
      functionLinenumberEnd: 809
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
      BBCount:         21
      ICount:          88
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - WaitForSingleObject
        - cleanup_handle
        - dump_thread
        - pthread_detach
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:793,25'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:793,49'
              BranchSideFuncs:
                - WaitForSingleObject
                - cleanup_handle
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_detach
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:801,19'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:793,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:795,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_detach
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:801,19'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:795,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:795,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pthread_detach
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:795,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_detach
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:795,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:795,4'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pthread_detach
            - BranchSide:      'winpr/libwinpr/thread/thread.c:795,4'
              BranchSideFuncs:
                - pthread_detach
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:791,3'
          Dst:             dump_thread
        - Src:             'winpr/libwinpr/thread/thread.c:793,29'
          Dst:             WaitForSingleObject
        - Src:             'winpr/libwinpr/thread/thread.c:795,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:795,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:795,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:797,4'
          Dst:             pthread_detach
        - Src:             'winpr/libwinpr/thread/thread.c:801,4'
          Dst:             cleanup_handle
    - functionName:    pthread_detach
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    DumpThreadHandles
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1048
      functionLinenumberEnd: 1113
      functionDepth:   0
      returnType:      void
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         1
      ICount:          4
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TerminateThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1019
      functionLinenumberEnd: 1045
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hThread
        - dwExitCode
      BBCount:         13
      ICount:          91
      EdgeCount:       17
      CyclomaticComplexity: 6
      functionsReached:
        - pthread_cancel
        - pthread_mutex_lock
        - run_mutex_fkt_
        - set_event
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:1024,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1024,56'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1025,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:1024,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1025,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1027,26'
              BranchSideFuncs:
                - run_mutex_fkt_
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:1031,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1032,3'
              BranchSideFuncs:
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1035,17'
              BranchSideFuncs:
                - pthread_cancel
                - run_mutex_fkt_
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:1040,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1041,3'
              BranchSideFuncs:
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1043,12'
              BranchSideFuncs:
                - set_event
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1024,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:1031,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1031,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:1035,2'
          Dst:             pthread_cancel
        - Src:             'winpr/libwinpr/thread/thread.c:1040,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:1040,7'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:1043,2'
          Dst:             set_event
    - functionName:    winpr_Handle_GetInfo
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 145
      functionLinenumberEnd: 164
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - handle
        - pType
        - pObject
      BBCount:         6
      ICount:          49
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:149,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:154,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/../handle/handle.h:154,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:155,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/../handle/handle.h:158,27'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    pthread_cancel
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - size_t
      constantsTouched: []
      argNames:
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    SwitchToThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1007
      functionLinenumberEnd: 1015
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          24
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - sched_yield
        - usleep
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:1012,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1012,6'
              BranchSideFuncs:
                - sched_yield
                - usleep
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1012,6'
              BranchSideFuncs:
                - sched_yield
                - usleep
        - Branch String:   'winpr/libwinpr/thread/thread.c:1012,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1012,6'
              BranchSideFuncs:
                - usleep
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1013,3'
              BranchSideFuncs:
                - usleep
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1012,6'
          Dst:             sched_yield
        - Src:             'winpr/libwinpr/thread/thread.c:1013,3'
          Dst:             usleep
    - functionName:    sched_yield
      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:    SuspendThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1000
      functionLinenumberEnd: 1003
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hThread
      BBCount:         15
      ICount:          52
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:1001,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1001,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1001,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:1001,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1001,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:1001,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:1001,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:1001,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:1001,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:1002,2'
          Dst:             SetLastError
    - functionName:    ResumeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 965
      functionLinenumberEnd: 997
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - hThread
      BBCount:         42
      ICount:          174
      EdgeCount:       52
      CyclomaticComplexity: 12
      functionsReached:
        - SetLastError
        - WLog_Get
        - pthread_mutex_lock
        - run_mutex_fkt_
        - winpr_Handle_GetInfo
        - winpr_StartThread
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:970,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:970,56'
              BranchSideFuncs:
                - run_mutex_fkt_
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:972,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:970,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:972,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:977,26'
              BranchSideFuncs:
                - run_mutex_fkt_
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:972,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:972,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:972,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:972,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:972,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:972,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/thread.c:979,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:980,3'
              BranchSideFuncs:
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:982,7'
              BranchSideFuncs:
                - winpr_StartThread
                - run_mutex_fkt_
                - run_mutex_fkt_
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:982,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:984,26'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:991,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:984,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:986,4'
              BranchSideFuncs:
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:989,2'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:991,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:991,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:991,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - run_mutex_fkt_
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:991,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:991,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - run_mutex_fkt_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:991,3'
              BranchSideFuncs:
                - run_mutex_fkt_
        - Branch String:   'winpr/libwinpr/thread/thread.c:993,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:994,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:996,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:970,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:972,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:972,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:972,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:973,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:979,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:979,7'
          Dst:             pthread_mutex_lock
        - Src:             'winpr/libwinpr/thread/thread.c:984,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:986,4'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:986,4'
          Dst:             pthread_mutex_checked_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:991,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:991,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:991,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:993,7'
          Dst:             run_mutex_fkt_
        - Src:             'winpr/libwinpr/thread/thread.c:993,7'
          Dst:             pthread_mutex_checked_unlock
    - functionName:    winpr_StartThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 565
      functionLinenumberEnd: 621
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - thread
      BBCount:         39
      ICount:          185
      EdgeCount:       50
      CyclomaticComplexity: 13
      functionsReached:
        - WLog_Get
        - dump_thread
        - mux_condition_bundle_lock
        - mux_condition_bundle_unlock
        - mux_condition_bundle_wait
        - pthread_attr_destroy
        - pthread_attr_init
        - pthread_attr_setdetachstate
        - pthread_attr_setstacksize
        - pthread_create
        - reset_event
        - signal_thread_is_running
        - thread_launcher
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:570,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:571,3'
              BranchSideFuncs:
                - pthread_attr_init
                - pthread_attr_setdetachstate
                - reset_event
                - pthread_create
                - mux_condition_bundle_wait
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - pthread_attr_setstacksize
            - BranchSide:      'winpr/libwinpr/thread/thread.c:572,9'
              BranchSideFuncs:
                - pthread_attr_init
                - pthread_attr_setdetachstate
                - reset_event
                - pthread_create
                - mux_condition_bundle_wait
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - pthread_attr_setstacksize
        - Branch String:   'winpr/libwinpr/thread/thread.c:577,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:578,44'
              BranchSideFuncs:
                - pthread_attr_setstacksize
                - reset_event
                - pthread_create
                - mux_condition_bundle_wait
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:580,2'
              BranchSideFuncs:
                - reset_event
                - pthread_create
                - mux_condition_bundle_wait
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:591,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:592,3'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:594,34'
              BranchSideFuncs:
                - mux_condition_bundle_wait
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:594,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:595,3'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:597,9'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:598,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:599,3'
              BranchSideFuncs:
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:601,32'
              BranchSideFuncs:
                - signal_thread_is_running
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:601,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:603,3'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:607,5'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:603,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:603,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:603,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:603,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:603,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
            - BranchSide:      'winpr/libwinpr/thread/thread.c:603,3'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
                - mux_condition_bundle_unlock
        - Branch String:   'winpr/libwinpr/thread/thread.c:609,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:611,37'
              BranchSideFuncs:
                - mux_condition_bundle_unlock
                - pthread_attr_destroy
                - dump_thread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:615,2'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
        - Branch String:   'winpr/libwinpr/thread/thread.c:611,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:612,7'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:613,2'
              BranchSideFuncs:
                - pthread_attr_destroy
                - dump_thread
        - Branch String:   'winpr/libwinpr/thread/thread.c:617,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:618,15'
              BranchSideFuncs:
                - dump_thread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:620,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:570,7'
          Dst:             mux_condition_bundle_lock
        - Src:             'winpr/libwinpr/thread/thread.c:574,2'
          Dst:             pthread_attr_init
        - Src:             'winpr/libwinpr/thread/thread.c:575,2'
          Dst:             pthread_attr_setdetachstate
        - Src:             'winpr/libwinpr/thread/thread.c:578,3'
          Dst:             pthread_attr_setstacksize
        - Src:             'winpr/libwinpr/thread/thread.c:581,2'
          Dst:             reset_event
        - Src:             'winpr/libwinpr/thread/thread.c:591,6'
          Dst:             pthread_create
        - Src:             'winpr/libwinpr/thread/thread.c:591,6'
          Dst:             thread_launcher
        - Src:             'winpr/libwinpr/thread/thread.c:594,7'
          Dst:             mux_condition_bundle_wait
        - Src:             'winpr/libwinpr/thread/thread.c:598,7'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:601,7'
          Dst:             signal_thread_is_running
        - Src:             'winpr/libwinpr/thread/thread.c:603,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:603,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:603,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:611,8'
          Dst:             mux_condition_bundle_unlock
        - Src:             'winpr/libwinpr/thread/thread.c:615,2'
          Dst:             pthread_attr_destroy
        - Src:             'winpr/libwinpr/thread/thread.c:618,3'
          Dst:             dump_thread
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - 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:    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:    1
      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:    1
      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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    userAPC
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 920
      functionLinenumberEnd: 926
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - arg
      BBCount:         3
      ICount:          31
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    QueueUserAPC
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 929
      functionLinenumberEnd: 962
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - pfnAPC
        - hThread
        - dwData
      BBCount:         25
      ICount:          147
      EdgeCount:       31
      CyclomaticComplexity: 8
      functionsReached:
        - SetLastError
        - WLog_Get
        - apc_register
        - calloc
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:935,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:936,3'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.3439
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - calloc
                - SetLastError
                - apc_register
            - BranchSide:      'winpr/libwinpr/thread/thread.c:938,28'
              BranchSideFuncs:
                - winpr_Handle_GetInfo.3439
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
                - calloc
                - SetLastError
                - apc_register
        - Branch String:   'winpr/libwinpr/thread/thread.c:938,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:938,56'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - apc_register
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:940,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:938,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:940,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:945,12'
              BranchSideFuncs:
                - calloc
                - SetLastError
                - apc_register
        - Branch String:   'winpr/libwinpr/thread/thread.c:940,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:940,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:940,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:940,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:940,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:940,3'
              BranchSideFuncs:
                - SetLastError
        - Branch String:   'winpr/libwinpr/thread/thread.c:946,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:948,3'
              BranchSideFuncs:
                - apc_register
            - BranchSide:      'winpr/libwinpr/thread/thread.c:952,9'
              BranchSideFuncs:
                - apc_register
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:938,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:940,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:940,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:940,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:941,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:945,12'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:948,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/thread/thread.c:960,2'
          Dst:             apc_register
    - functionName:    GetCurrentThreadId
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 904
      functionLinenumberEnd: 909
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_self
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:905,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:905,12'
              BranchSideFuncs:
                - pthread_self
            - BranchSide:      'winpr/libwinpr/thread/thread.c:905,12'
              BranchSideFuncs:
                - pthread_self
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:906,8'
          Dst:             pthread_self
    - functionName:    _GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 899
      functionLinenumberEnd: 900
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         3
      ICount:          12
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_GetCurrentThread
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:900,17'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:900,17'
              BranchSideFuncs:
                - winpr_GetCurrentThread
            - BranchSide:      'winpr/libwinpr/thread/thread.c:900,17'
              BranchSideFuncs:
                - winpr_GetCurrentThread
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:900,17'
          Dst:             winpr_GetCurrentThread
    - functionName:    winpr_GetCurrentThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 887
      functionLinenumberEnd: 896
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          36
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - TlsGetValue
        - initializeThreads
        - pthread_self
        - winpr_InitOnceExecuteOnce
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:888,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:888,16'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
                - pthread_self
                - TlsGetValue
            - BranchSide:      'winpr/libwinpr/thread/thread.c:888,16'
              BranchSideFuncs:
                - winpr_InitOnceExecuteOnce
                - pthread_self
                - TlsGetValue
        - Branch String:   'winpr/libwinpr/thread/thread.c:891,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:892,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:894,20'
              BranchSideFuncs:
                - TlsGetValue
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:890,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:890,2'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:891,22'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:894,8'
          Dst:             TlsGetValue
    - functionName:    initializeThreads
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 443
      functionLinenumberEnd: 472
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - InitOnce
        - Parameter
        - Context
      BBCount:         33
      ICount:          115
      EdgeCount:       39
      CyclomaticComplexity: 8
      functionsReached:
        - TlsAlloc
        - WLog_Get
        - apc_init
        - pthread_self
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:444,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:446,3'
              BranchSideFuncs:
                - pthread_self
                - TlsAlloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:450,25'
              BranchSideFuncs:
                - pthread_self
                - TlsAlloc
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:446,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:446,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:446,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:446,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:446,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:446,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:454,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:454,31'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:456,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:456,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:456,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:456,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:456,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:456,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:456,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:444,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:446,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:446,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:446,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:451,17'
          Dst:             pthread_self
        - Src:             'winpr/libwinpr/thread/thread.c:453,26'
          Dst:             TlsAlloc
        - Src:             'winpr/libwinpr/thread/thread.c:456,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:456,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:456,3'
          Dst:             WLog_PrintMessage
    - functionName:    GetExitCodeThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 869
      functionLinenumberEnd: 884
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hThread
        - lpExitCode
      BBCount:         21
      ICount:          99
      EdgeCount:       25
      CyclomaticComplexity: 6
      functionsReached:
        - SetLastError
        - WLog_Get
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:874,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:874,56'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:876,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:874,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:876,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:881,26'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:876,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:876,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:876,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:876,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:876,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:876,3'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:874,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:876,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:876,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:876,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:877,3'
          Dst:             SetLastError
    - functionName:    ExitThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 822
      functionLinenumberEnd: 866
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwExitCode
      BBCount:         1
      ICount:          8
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    0
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateRemoteThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 815
      functionLinenumberEnd: 818
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - hProcess
        - lpThreadAttributes
        - dwStackSize
        - lpStartAddress
        - lpParameter
        - dwCreationFlags
        - lpThreadId
      BBCount:         15
      ICount:          70
      EdgeCount:       17
      CyclomaticComplexity: 4
      functionsReached:
        - SetLastError
        - WLog_Get
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:816,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:816,2'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:816,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - SetLastError
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:816,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:816,2'
              BranchSideFuncs:
                - WLog_PrintMessage
                - SetLastError
            - BranchSide:      'winpr/libwinpr/thread/thread.c:816,2'
              BranchSideFuncs:
                - SetLastError
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:816,2'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:816,2'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:816,2'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:817,2'
          Dst:             SetLastError
    - functionName:    WINPR_HANDLE_SET_TYPE_AND_MODE
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/../handle/handle.h'
      linkageType:     InternalLinkage
      functionLinenumber: 137
      functionLinenumberEnd: 142
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - _handle
        - _type
        - _mode
      BBCount:         1
      ICount:          25
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    mux_condition_bundle_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 212
      functionLinenumberEnd: 222
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - bundle
      BBCount:         11
      ICount:          55
      EdgeCount:       13
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - pthread_cond_init
        - pthread_mutex_init
        - run_cond_init_
        - run_mutex_init_
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:213,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:213,2'
              BranchSideFuncs:
                - run_mutex_init_
                - run_cond_init_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:215,2'
              BranchSideFuncs:
                - run_mutex_init_
                - run_cond_init_
        - Branch String:   'winpr/libwinpr/thread/thread.c:216,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:217,3'
              BranchSideFuncs:
                - run_cond_init_
            - BranchSide:      'winpr/libwinpr/thread/thread.c:219,7'
              BranchSideFuncs:
                - run_cond_init_
        - Branch String:   'winpr/libwinpr/thread/thread.c:219,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:220,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:221,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:213,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:216,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:216,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:219,7'
          Dst:             run_cond_init_
        - Src:             'winpr/libwinpr/thread/thread.c:219,7'
          Dst:             pthread_cond_init
    - functionName:    run_mutex_init_
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 135
      functionLinenumberEnd: 147
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - fkt
        - name
        - mutex
        - mutexattr
      BBCount:         24
      ICount:          108
      EdgeCount:       27
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
        - winpr_strerror
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:138,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:138,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:139,2'
              BranchSideFuncs:
                - __assert_fail
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:139,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:139,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:141,7'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:142,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:142,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:144,8'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:145,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:145,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:145,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - winpr_strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:145,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:145,3'
              BranchSideFuncs:
                - winpr_strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:145,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:138,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:139,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/thread/thread.c:145,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:145,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:145,3'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/thread/thread.c:145,3'
          Dst:             WLog_PrintMessage
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    CreateThread
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 680
      functionLinenumberEnd: 740
      functionDepth:   0
      returnType:      'N/A'
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - lpThreadAttributes
        - dwStackSize
        - lpStartAddress
        - lpParameter
        - dwCreationFlags
        - lpThreadId
      BBCount:         60
      ICount:          262
      EdgeCount:       75
      CyclomaticComplexity: 17
      functionsReached:
        - WINPR_HANDLE_SET_TYPE_AND_MODE
        - WLog_Get
        - apc_init
        - calloc
        - cleanup_handle
        - initializeThreads
        - mux_condition_bundle_init
        - pthread_mutex_init
        - run_mutex_init_
        - set_event
        - winpr_InitOnceExecuteOnce
        - winpr_StartThread
        - winpr_event_init
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:684,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:685,3'
              BranchSideFuncs:
                - winpr_event_init
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
                - run_mutex_init_
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:687,24'
              BranchSideFuncs:
                - winpr_event_init
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
                - run_mutex_init_
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - apc_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:697,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:699,3'
              BranchSideFuncs:
                - run_mutex_init_
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
                - apc_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:703,7'
              BranchSideFuncs:
                - run_mutex_init_
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
                - apc_init
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:699,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:699,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:699,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:699,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:699,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:699,3'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:703,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:705,3'
              BranchSideFuncs:
                - apc_init
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:709,17'
              BranchSideFuncs:
                - apc_init
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
                - mux_condition_bundle_init
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:705,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:705,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:705,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:705,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:705,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:705,3'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:709,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:711,3'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:715,34'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - mux_condition_bundle_init
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:711,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:711,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:711,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - cleanup_handle
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:711,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:711,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:711,3'
              BranchSideFuncs:
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:715,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:716,3'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:717,34'
              BranchSideFuncs:
                - mux_condition_bundle_init
                - cleanup_handle
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:717,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:718,3'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - cleanup_handle
                - set_event
            - BranchSide:      'winpr/libwinpr/thread/thread.c:720,33'
              BranchSideFuncs:
                - WINPR_HANDLE_SET_TYPE_AND_MODE.3453
                - winpr_InitOnceExecuteOnce
                - winpr_StartThread
                - cleanup_handle
                - set_event
        - Branch String:   'winpr/libwinpr/thread/thread.c:725,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:727,26'
              BranchSideFuncs:
                - set_event
                - cleanup_handle
            - BranchSide:      'winpr/libwinpr/thread/thread.c:732,18'
              BranchSideFuncs:
                - set_event
                - cleanup_handle
        - Branch String:   'winpr/libwinpr/thread/thread.c:727,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:728,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:729,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:732,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:733,4'
              BranchSideFuncs:
                - cleanup_handle
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:682,40'
          Dst:             calloc
        - Src:             'winpr/libwinpr/thread/thread.c:697,7'
          Dst:             winpr_event_init
        - Src:             'winpr/libwinpr/thread/thread.c:699,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:699,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:699,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:703,7'
          Dst:             run_mutex_init_
        - Src:             'winpr/libwinpr/thread/thread.c:703,7'
          Dst:             pthread_mutex_init
        - Src:             'winpr/libwinpr/thread/thread.c:705,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:705,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:705,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:709,7'
          Dst:             apc_init
        - Src:             'winpr/libwinpr/thread/thread.c:711,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:711,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:711,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/thread/thread.c:715,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:717,7'
          Dst:             mux_condition_bundle_init
        - Src:             'winpr/libwinpr/thread/thread.c:720,2'
          Dst:             WINPR_HANDLE_SET_TYPE_AND_MODE
        - Src:             'winpr/libwinpr/thread/thread.c:723,2'
          Dst:             winpr_InitOnceExecuteOnce
        - Src:             'winpr/libwinpr/thread/thread.c:723,2'
          Dst:             initializeThreads
        - Src:             'winpr/libwinpr/thread/thread.c:727,8'
          Dst:             winpr_StartThread
        - Src:             'winpr/libwinpr/thread/thread.c:732,8'
          Dst:             set_event
        - Src:             'winpr/libwinpr/thread/thread.c:738,2'
          Dst:             cleanup_handle
    - functionName:    SetThreadPriority
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/thread.c'
      linkageType:     InternalLinkage
      functionLinenumber: 624
      functionLinenumberEnd: 675
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hThread
        - nPriority
      BBCount:         34
      ICount:          177
      EdgeCount:       38
      CyclomaticComplexity: 6
      functionsReached:
        - WLog_Get
        - pthread_setschedprio
        - strerror
        - winpr_Handle_GetInfo
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/thread.c:628,53'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:628,56'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:629,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:628,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:629,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/thread.c:631,40'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:640,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:643,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:646,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:649,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:652,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:655,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:658,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:659,4'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:662,19'
              BranchSideFuncs:
                - pthread_setschedprio
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:667,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:668,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:669,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/thread/thread.c:668,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:668,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:668,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - strerror
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/thread/thread.c:668,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/thread.c:668,3'
              BranchSideFuncs:
                - strerror
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/thread/thread.c:668,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/thread.c:628,7'
          Dst:             winpr_Handle_GetInfo
        - Src:             'winpr/libwinpr/thread/thread.c:666,17'
          Dst:             pthread_setschedprio
        - Src:             'winpr/libwinpr/thread/thread.c:668,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/thread/thread.c:668,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/thread/thread.c:668,3'
          Dst:             strerror
        - Src:             'winpr/libwinpr/thread/thread.c:668,3'
          Dst:             WLog_PrintMessage
    - functionName:    pthread_setschedprio
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - size_t
        - int
      constantsTouched: []
      argNames:
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TlsFree
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 65
      functionLinenumberEnd: 69
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwTlsIndex
      BBCount:         3
      ICount:          21
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_key_delete
      functionUses:    0
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:68,2'
          Dst:             pthread_key_delete
    - 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:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    TlsSetValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 57
      functionLinenumberEnd: 61
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - dwTlsIndex
        - lpTlsValue
      BBCount:         3
      ICount:          25
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_setspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:60,2'
          Dst:             pthread_setspecific
    - functionName:    TlsGetValue
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 48
      functionLinenumberEnd: 53
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - dwTlsIndex
      BBCount:         3
      ICount:          26
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - pthread_getspecific
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:52,18'
          Dst:             pthread_getspecific
    - functionName:    TlsAlloc
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/thread/tls.c'
      linkageType:     InternalLinkage
      functionLinenumber: 38
      functionLinenumberEnd: 45
      functionDepth:   0
      returnType:      int
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - pthread_key_create
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/thread/tls.c:39,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/tls.c:39,16'
              BranchSideFuncs:
                - pthread_key_create
            - BranchSide:      'winpr/libwinpr/thread/tls.c:39,16'
              BranchSideFuncs:
                - pthread_key_create
        - Branch String:   'winpr/libwinpr/thread/tls.c:41,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/thread/tls.c:42,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/thread/tls.c:44,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/thread/tls.c:41,6'
          Dst:             pthread_key_create
    - functionName:    wmemmove_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 41
      functionLinenumberEnd: 48
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dest
        - numberOfElements
        - src
        - count
      BBCount:         4
      ICount:          39
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/buffer.c:42,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/buffer.c:43,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/buffer.c:45,10'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    memmove_s
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/crt/buffer.c'
      linkageType:     InternalLinkage
      functionLinenumber: 31
      functionLinenumberEnd: 38
      functionDepth:   0
      returnType:      int
      argCount:        4
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - dest
        - numberOfElements
        - src
        - count
      BBCount:         4
      ICount:          37
      EdgeCount:       4
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/crt/buffer.c:32,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/crt/buffer.c:33,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/crt/buffer.c:35,10'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    pollset_isWriteSignaled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 254
      functionLinenumberEnd: 272
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - set
        - idx
      BBCount:         21
      ICount:          97
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:255,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:255,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:257,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/pollset.c:257,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:259,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:264,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/pollset.c:259,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:259,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:259,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/pollset.c:259,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:259,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:259,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:255,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/pollset.c:259,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/pollset.c:259,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/pollset.c:259,3'
          Dst:             WLog_PrintMessage
    - functionName:    pollset_isReadSignaled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 233
      functionLinenumberEnd: 251
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - set
        - idx
      BBCount:         21
      ICount:          97
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:234,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:234,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:236,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/pollset.c:236,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:238,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:243,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/pollset.c:238,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:238,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:238,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/pollset.c:238,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:238,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:238,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:234,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/pollset.c:238,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/pollset.c:238,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/pollset.c:238,3'
          Dst:             WLog_PrintMessage
    - functionName:    pollset_isSignaled
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 206
      functionLinenumberEnd: 230
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - set
        - idx
      BBCount:         21
      ICount:          105
      EdgeCount:       24
      CyclomaticComplexity: 5
      functionsReached:
        - WLog_Get
        - __assert_fail
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:207,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:207,2'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:209,6'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/pollset.c:209,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:211,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:216,12'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/pollset.c:211,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:211,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:211,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/synch/pollset.c:211,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:211,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:211,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:207,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/pollset.c:211,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/synch/pollset.c:211,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/synch/pollset.c:211,3'
          Dst:             WLog_PrintMessage
    - functionName:    pollset_poll
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 121
      functionLinenumberEnd: 203
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - set
        - dwMilliseconds
      BBCount:         21
      ICount:          126
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - __errno_location
        - poll
        - winpr_GetTickCount64
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:122,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:122,2'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - poll
                - __errno_location
                - winpr_GetTickCount64
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:123,6'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - poll
                - __errno_location
                - winpr_GetTickCount64
        - Branch String:   'winpr/libwinpr/synch/pollset.c:128,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:129,11'
              BranchSideFuncs:
                - poll
                - __errno_location
                - winpr_GetTickCount64
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:131,13'
              BranchSideFuncs:
                - poll
                - __errno_location
                - winpr_GetTickCount64
        - Branch String:   'winpr/libwinpr/synch/pollset.c:138,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:139,12'
              BranchSideFuncs:
                - poll
                - __errno_location
                - winpr_GetTickCount64
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:141,20'
              BranchSideFuncs:
                - poll
                - __errno_location
                - winpr_GetTickCount64
        - Branch String:   'winpr/libwinpr/synch/pollset.c:144,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:145,11'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:147,7'
              BranchSideFuncs:
                - __errno_location
                - winpr_GetTickCount64
                - poll
        - Branch String:   'winpr/libwinpr/synch/pollset.c:147,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:148,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:150,9'
              BranchSideFuncs:
                - winpr_GetTickCount64
                - poll
                - __errno_location
        - Branch String:   'winpr/libwinpr/synch/pollset.c:151,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:138,7'
              BranchSideFuncs:
                - poll
                - __errno_location
                - winpr_GetTickCount64
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:202,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:122,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/pollset.c:127,8'
          Dst:             winpr_GetTickCount64
        - Src:             'winpr/libwinpr/synch/pollset.c:143,9'
          Dst:             poll
        - Src:             'winpr/libwinpr/synch/pollset.c:147,7'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/synch/pollset.c:150,9'
          Dst:             winpr_GetTickCount64
    - 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:    handle_mode_to_pollevent
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 14
      functionLinenumberEnd: 23
      functionDepth:   0
      returnType:      short
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - mode
      BBCount:         7
      ICount:          47
      EdgeCount:       8
      CyclomaticComplexity: 3
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:17,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:18,9'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:20,6'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/pollset.c:20,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:20,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:21,9'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    pollset_add
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 85
      functionLinenumberEnd: 118
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - int
      constantsTouched: []
      argNames:
        - set
        - fd
        - mode
      BBCount:         9
      ICount:          78
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - handle_mode_to_pollevent
      functionUses:    3
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:86,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:86,2'
              BranchSideFuncs:
                - handle_mode_to_pollevent
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:88,17'
              BranchSideFuncs:
                - handle_mode_to_pollevent
        - Branch String:   'winpr/libwinpr/synch/pollset.c:89,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:90,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:92,10'
              BranchSideFuncs:
                - handle_mode_to_pollevent
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:86,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/pollset.c:95,17'
          Dst:             handle_mode_to_pollevent
    - functionName:    pollset_reset
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 73
      functionLinenumberEnd: 82
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:74,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:74,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:74,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:74,2'
          Dst:             __assert_fail
    - functionName:    pollset_uninit
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 62
      functionLinenumberEnd: 70
      functionDepth:   0
      returnType:      void
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - set
      BBCount:         9
      ICount:          41
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    5
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:63,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:63,2'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:65,7'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/synch/pollset.c:65,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:65,6'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:66,8'
              BranchSideFuncs:
                - free
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:63,2'
          Dst:             __assert_fail
    - functionName:    pollset_init
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/synch/pollset.c'
      linkageType:     InternalLinkage
      functionLinenumber: 28
      functionLinenumberEnd: 59
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - set
        - nhandles
      BBCount:         12
      ICount:          76
      EdgeCount:       14
      CyclomaticComplexity: 4
      functionsReached:
        - __assert_fail
        - calloc
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/synch/pollset.c:29,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:29,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:31,6'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/synch/pollset.c:31,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:33,3'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:40,18'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/synch/pollset.c:35,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:36,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/synch/pollset.c:37,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/synch/pollset.c:29,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/synch/pollset.c:34,18'
          Dst:             calloc
    - functionName:    CommWriteFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 545
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hDevice
        - lpBuffer
        - nNumberOfBytesToWrite
        - lpNumberOfBytesWritten
        - lpOverlapped
      BBCount:         68
      ICount:          515
      EdgeCount:       85
      CyclomaticComplexity: 19
      functionsReached:
        - CommIsHandled
        - CommLog_Print
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - __assert_fail
        - __errno_location
        - eventfd_read
        - select
        - tcdrain
        - winpr_strerror
        - write
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:372,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:373,3'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:375,6'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:375,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:377,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:381,6'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:381,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:383,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:387,3'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:389,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:391,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:397,15'
              BranchSideFuncs:
                - eventfd_read
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:407,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:409,26'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:412,12'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:420,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:422,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - select
                - tcdrain
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:536,10'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:428,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:429,16'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - select
                - tcdrain
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:431,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - select
                - tcdrain
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:433,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:433,3'
              BranchSideFuncs:
                - __assert_fail
                - select
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:434,3'
              BranchSideFuncs:
                - __assert_fail
                - select
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:434,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:434,3'
              BranchSideFuncs:
                - select
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:435,3'
              BranchSideFuncs:
                - select
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:439,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:441,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:448,7'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - LeaveCriticalSection
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:448,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:451,4'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:457,7'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:457,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:459,14'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:491,7'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:461,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:463,9'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:480,8'
              BranchSideFuncs:
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:463,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:465,6'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:470,11'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:477,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:477,5'
              BranchSideFuncs:
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:478,4'
              BranchSideFuncs:
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:480,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:482,5'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:486,4'
              BranchSideFuncs:
                - __assert_fail
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:486,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:486,4'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:487,3'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:491,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:420,2'
              BranchSideFuncs:
                - write
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:493,12'
              BranchSideFuncs:
                - write
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - eventfd_read
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:497,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:499,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:524,31'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:506,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:509,6'
              BranchSideFuncs:
                - tcdrain
                - LeaveCriticalSection
                - __assert_fail
                - __assert_fail
                - select
                - write
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:511,14'
              BranchSideFuncs:
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:511,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:513,6'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:518,6'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_io.c:370,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:372,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_io.c:377,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:383,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:397,2'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:433,3'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:434,3'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:437,11'
          Dst:             select
        - Src:             'winpr/libwinpr/comm/comm_io.c:442,66'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:443,33'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:443,18'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:442,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:444,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:451,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:461,8'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:463,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:465,6'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:473,20'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:473,42'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:473,27'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:471,6'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:477,5'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:477,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:482,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:486,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:494,16'
          Dst:             write
        - Src:             'winpr/libwinpr/comm/comm_io.c:503,44'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:504,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:504,19'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:500,5'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:506,9'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:511,14'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:513,6'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:518,6'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:536,2'
          Dst:             tcdrain
        - Src:             'winpr/libwinpr/comm/comm_io.c:539,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:543,2'
          Dst:             LeaveCriticalSection
    - functionName:    tcdrain
      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:    svtime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 46
      functionLinenumberEnd: 57
      functionDepth:   0
      returnType:      char
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - Ti
      BBCount:         8
      ICount:          44
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:49,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:50,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:51,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:51,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:52,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:53,11'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:53,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:54,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:56,10'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    CommReadFile
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 70
      functionLinenumberEnd: 355
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - hDevice
        - lpBuffer
        - nNumberOfBytesToRead
        - lpNumberOfBytesRead
        - lpOverlapped
      BBCount:         113
      ICount:          789
      EdgeCount:       148
      CyclomaticComplexity: 37
      functionsReached:
        - CommIsHandled
        - CommLog_Print
        - EnterCriticalSection
        - LeaveCriticalSection
        - SetLastError
        - __assert_fail
        - __errno_location
        - eventfd_read
        - memchr
        - read
        - select
        - svtime
        - tcgetattr
        - tcsetattr
        - winpr_strerror
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:84,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:85,3'
              BranchSideFuncs:
                - tcgetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:87,6'
              BranchSideFuncs:
                - tcgetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:87,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:89,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:93,6'
              BranchSideFuncs:
                - tcgetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:93,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:95,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:99,3'
              BranchSideFuncs:
                - tcgetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:101,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:103,3'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:106,16'
              BranchSideFuncs:
                - tcgetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:106,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:108,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:112,21'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:112,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:114,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:138,16'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:140,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:141,7'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:152,7'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:140,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:143,3'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:152,7'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:152,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:153,7'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:164,8'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:153,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:153,55'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:164,8'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:152,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:155,8'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:164,8'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:169,43'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:169,47'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
                - svtime
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:176,15'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:169,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:172,18'
              BranchSideFuncs:
                - svtime
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:176,15'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:178,51'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:179,7'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:187,17'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:178,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:182,10'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:187,17'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - tcsetattr
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:196,42'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:196,61'
              BranchSideFuncs:
                - tcsetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:198,31'
              BranchSideFuncs:
                - tcsetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:196,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:198,31'
              BranchSideFuncs:
                - tcsetattr
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:214,6'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:201,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:206,18'
              BranchSideFuncs:
                - CommLog_Print
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:210,2'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:214,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:216,3'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:228,15'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:218,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:220,27'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:223,2'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:231,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:232,15'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:234,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:235,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:235,2'
              BranchSideFuncs:
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:236,2'
              BranchSideFuncs:
                - __assert_fail
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:236,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:236,2'
              BranchSideFuncs:
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:237,2'
              BranchSideFuncs:
                - select
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:241,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:243,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:250,6'
              BranchSideFuncs:
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:250,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:253,3'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:259,6'
              BranchSideFuncs:
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - eventfd_read
                - __assert_fail
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:259,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:261,13'
              BranchSideFuncs:
                - eventfd_read
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:291,6'
              BranchSideFuncs:
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:263,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:265,8'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:282,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:265,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:267,5'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:272,10'
              BranchSideFuncs:
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:279,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:279,4'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:280,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:282,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:284,4'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:288,3'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:288,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:288,3'
              BranchSideFuncs:
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:289,2'
              BranchSideFuncs:
                - __assert_fail
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:291,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:293,11'
              BranchSideFuncs:
                - read
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:347,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:296,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:298,9'
              BranchSideFuncs:
                - CommLog_Print
                - __errno_location
                - __errno_location
                - winpr_strerror
                - CommLog_Print
                - __errno_location
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:328,7'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
                - SetLastError
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:310,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:313,5'
              BranchSideFuncs:
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:315,13'
              BranchSideFuncs:
                - __errno_location
                - __assert_fail
                - SetLastError
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:315,13'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:317,5'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:322,5'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:328,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:331,4'
              BranchSideFuncs:
                - SetLastError
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:335,26'
              BranchSideFuncs:
                - EnterCriticalSection
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:338,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:340,8'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
                - memchr
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:343,25'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:340,33'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:340,43'
              BranchSideFuncs:
                - memchr
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:342,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:340,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:341,5'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:342,3'
              BranchSideFuncs:
                - LeaveCriticalSection
                - LeaveCriticalSection
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_io.c:82,2'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:84,7'
          Dst:             CommIsHandled
        - Src:             'winpr/libwinpr/comm/comm_io.c:89,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:95,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:106,6'
          Dst:             tcgetattr
        - Src:             'winpr/libwinpr/comm/comm_io.c:108,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:114,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:115,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:143,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:146,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:172,11'
          Dst:             svtime
        - Src:             'winpr/libwinpr/comm/comm_io.c:201,7'
          Dst:             tcsetattr
        - Src:             'winpr/libwinpr/comm/comm_io.c:203,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:207,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:228,2'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:235,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:236,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:239,10'
          Dst:             select
        - Src:             'winpr/libwinpr/comm/comm_io.c:244,65'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:245,32'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:245,17'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:244,3'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:246,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:253,3'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:263,7'
          Dst:             eventfd_read
        - Src:             'winpr/libwinpr/comm/comm_io.c:265,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:267,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:274,81'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:275,34'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:275,19'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:273,5'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:279,4'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:279,4'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:284,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:288,3'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:294,12'
          Dst:             read
        - Src:             'winpr/libwinpr/comm/comm_io.c:299,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:308,30'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:308,52'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:308,37'
          Dst:             winpr_strerror
        - Src:             'winpr/libwinpr/comm/comm_io.c:306,4'
          Dst:             CommLog_Print
        - Src:             'winpr/libwinpr/comm/comm_io.c:310,8'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:315,13'
          Dst:             __errno_location
        - Src:             'winpr/libwinpr/comm/comm_io.c:317,5'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:322,5'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:331,4'
          Dst:             SetLastError
        - Src:             'winpr/libwinpr/comm/comm_io.c:337,3'
          Dst:             EnterCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:340,36'
          Dst:             memchr
        - Src:             'winpr/libwinpr/comm/comm_io.c:343,3'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:347,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/comm/comm_io.c:350,2'
          Dst:             LeaveCriticalSection
        - Src:             'winpr/libwinpr/comm/comm_io.c:353,2'
          Dst:             LeaveCriticalSection
    - functionName:    memchr
      functionSourceFile: ''
      linkageType:     externalLinkage
      functionLinenumber: -1
      functionLinenumberEnd: 0
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - size_t
      constantsTouched: []
      argNames:
        - ''
        - ''
        - ''
      BBCount:         0
      ICount:          0
      EdgeCount:       0
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    _comm_set_permissive
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/comm/comm_io.c'
      linkageType:     InternalLinkage
      functionLinenumber: 34
      functionLinenumberEnd: 42
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - hDevice
        - permissive
      BBCount:         6
      ICount:          42
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - CommIsHandled
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/comm/comm_io.c:37,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:38,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/comm/comm_io.c:40,22'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/comm/comm_io.c:37,7'
          Dst:             CommIsHandled
    - functionName:    compare_byte_relaxed
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1118
      functionLinenumberEnd: 1134
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - char
        - char
        - int
      constantsTouched: []
      argNames:
        - a
        - b
        - flags
      BBCount:         10
      ICount:          68
      EdgeCount:       12
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1119,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1121,8'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1133,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1121,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1123,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1130,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1125,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1126,5'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1127,3'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    Stream_Read
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 582
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          74
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:577,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:577,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:578,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:578,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:579,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:579,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:577,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:578,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:579,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:581,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Seek
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 126
      functionLinenumberEnd: 130
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - s
        - _offset
      BBCount:         9
      ICount:          47
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:127,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:127,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:128,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:128,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:127,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:128,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 766
      functionLinenumberEnd: 775
      functionDepth:   0
      returnType:      void
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _b
        - _n
      BBCount:         15
      ICount:          71
      EdgeCount:       16
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:767,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:767,7'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:769,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:769,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:770,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:770,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:771,4'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:771,4'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:772,11'
              BranchSideFuncs:
                - Stream_Seek.3659
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:769,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:770,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:771,4'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:773,4'
          Dst:             Stream_Seek
    - functionName:    winpr_convert_to_png
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 997
      functionLinenumberEnd: 1033
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
        - size
        - width
        - height
        - stride
        - bpp
        - pSize
      BBCount:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:998,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:998,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:998,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:998,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:998,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:999,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:999,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:999,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:999,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:998,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:999,2'
          Dst:             __assert_fail
    - functionName:    winpr_convert_to_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 598
      functionLinenumberEnd: 605
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
        - size
        - width
        - height
        - stride
        - bpp
        - pSize
      BBCount:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:599,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:599,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:599,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:599,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:599,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:600,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:600,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:600,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:600,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:599,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:600,2'
          Dst:             __assert_fail
    - functionName:    winpr_convert_to_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 719
      functionLinenumberEnd: 726
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
        - size
        - width
        - height
        - stride
        - bpp
        - pSize
      BBCount:         12
      ICount:          67
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:720,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:720,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:720,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:720,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:720,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:721,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:721,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:721,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:721,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:720,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:721,2'
          Dst:             __assert_fail
    - functionName:    winpr_image_format_extension
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1221
      functionLinenumberEnd: 1235
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - format
      BBCount:         7
      ICount:          38
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1222,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1225,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1227,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1229,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1231,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1233,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_image_format_mime
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1204
      functionLinenumberEnd: 1218
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - format
      BBCount:         7
      ICount:          38
      EdgeCount:       12
      CyclomaticComplexity: 7
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1205,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1208,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1210,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1212,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1214,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1216,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    compare_pixel
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1137
      functionLinenumberEnd: 1153
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - pa
        - pb
        - flags
      BBCount:         21
      ICount:          127
      EdgeCount:       26
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - compare_byte_relaxed
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1138,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1138,2'
              BranchSideFuncs:
                - __assert_fail
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1139,2'
              BranchSideFuncs:
                - __assert_fail
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1139,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1139,2'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1141,31'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1141,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1142,3'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1143,31'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1143,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1144,3'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1145,31'
              BranchSideFuncs:
                - compare_byte_relaxed
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1145,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1146,3'
              BranchSideFuncs:
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1147,7'
              BranchSideFuncs:
                - compare_byte_relaxed
        - Branch String:   'winpr/libwinpr/utils/image.c:1147,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1149,32'
              BranchSideFuncs:
                - compare_byte_relaxed
            - BranchSide:      'winpr/libwinpr/utils/image.c:1152,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1149,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1150,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1151,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1138,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:1139,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:1141,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1143,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1145,7'
          Dst:             compare_byte_relaxed
        - Src:             'winpr/libwinpr/utils/image.c:1149,8'
          Dst:             compare_byte_relaxed
    - functionName:    convert
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1077
      functionLinenumberEnd: 1115
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - image
        - pstride
        - flags
      BBCount:         26
      ICount:          224
      EdgeCount:       31
      CyclomaticComplexity: 7
      functionsReached:
        - __assert_fail
        - calloc
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1078,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1078,2'
              BranchSideFuncs:
                - __assert_fail
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:1079,2'
              BranchSideFuncs:
                - __assert_fail
                - calloc
        - Branch String:   'winpr/libwinpr/utils/image.c:1079,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1079,2'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:1081,3'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/image.c:1082,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1083,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1085,24'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/image.c:1087,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1089,15'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1114,9'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1089,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1091,27'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1112,14'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1093,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1094,12'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1097,17'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1097,5'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:0,0'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1099,25'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1078,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:1079,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:1086,15'
          Dst:             calloc
    - functionName:    winpr_image_equal
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1156
      functionLinenumberEnd: 1201
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - imageA
        - imageB
        - flags
      BBCount:         40
      ICount:          258
      EdgeCount:       54
      CyclomaticComplexity: 16
      functionsReached:
        - compare_pixel
        - convert
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1157,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1158,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1159,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1159,14'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1159,18'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1160,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:1159,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1160,3'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1162,6'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1162,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1163,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1164,6'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1164,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1165,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1167,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1167,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1169,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1175,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1169,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1170,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1171,7'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1171,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1172,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1173,2'
              BranchSideFuncs:
                - convert
                - convert
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1180,12'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1180,15'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1198,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1180,21'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1180,25'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1198,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1180,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1182,6'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1198,7'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1183,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1185,25'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1197,2'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:1188,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1190,23'
              BranchSideFuncs:
                - compare_pixel
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:1196,3'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
        - Branch String:   'winpr/libwinpr/utils/image.c:1193,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1194,9'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
            - BranchSide:      'winpr/libwinpr/utils/image.c:1195,4'
              BranchSideFuncs:
                - free
                - free
                - compare_pixel
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1178,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1179,16'
          Dst:             convert
        - Src:             'winpr/libwinpr/utils/image.c:1193,10'
          Dst:             compare_pixel
    - functionName:    winpr_image_format_is_supported
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1057
      functionLinenumberEnd: 1074
      functionDepth:   0
      returnType:      int
      argCount:        1
      argTypes:
        - int
      constantsTouched: []
      argNames:
        - format
      BBCount:         4
      ICount:          23
      EdgeCount:       6
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1058,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1070,4'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:1072,4'
              BranchSideFuncs: []
      Callsites:       []
    - functionName:    winpr_image_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 586
      functionLinenumberEnd: 594
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - image
        - bFreeBuffer
      BBCount:         9
      ICount:          43
      EdgeCount:       11
      CyclomaticComplexity: 4
      functionsReached: []
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:587,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:588,3'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:590,6'
              BranchSideFuncs:
                - free
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:590,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:591,8'
              BranchSideFuncs:
                - free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:593,7'
              BranchSideFuncs:
                - free
      Callsites:       []
    - functionName:    winpr_image_new
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 576
      functionLinenumberEnd: 583
      functionDepth:   0
      returnType:      'N/A'
      argCount:        0
      argTypes:        []
      constantsTouched: []
      argNames:        []
      BBCount:         6
      ICount:          31
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - calloc
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:577,10'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:577,27'
              BranchSideFuncs:
                - calloc
            - BranchSide:      'winpr/libwinpr/utils/image.c:577,27'
              BranchSideFuncs:
                - calloc
        - Branch String:   'winpr/libwinpr/utils/image.c:579,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:580,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:582,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:577,27'
          Dst:             calloc
    - functionName:    winpr_convert_from_png
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1039
      functionLinenumberEnd: 1052
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - comp_data
        - comp_data_bytes
        - width
        - height
        - bpp
        - ppdecomp_data
      BBCount:         1
      ICount:          22
      EdgeCount:       1
      CyclomaticComplexity: 2
      functionsReached: []
      functionUses:    1
      BranchProfiles:  []
      Callsites:       []
    - functionName:    winpr_convert_from_jpeg
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 662
      functionLinenumberEnd: 670
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - comp_data
        - comp_data_bytes
        - width
        - height
        - bpp
        - ppdecomp_data
      BBCount:         21
      ICount:          89
      EdgeCount:       22
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:663,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:663,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:663,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:663,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:663,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:664,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:664,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:664,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:665,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:665,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:665,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:666,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:666,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:666,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:667,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:667,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:667,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:667,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:663,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:664,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:665,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:666,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:667,2'
          Dst:             __assert_fail
    - functionName:    winpr_convert_from_webp
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 758
      functionLinenumberEnd: 770
      functionDepth:   0
      returnType:      size_t
      argCount:        6
      argTypes:
        - 'N/A'
        - size_t
        - 'N/A'
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - comp_data
        - comp_data_bytes
        - width
        - height
        - bpp
        - ppdecomp_data
      BBCount:         21
      ICount:          97
      EdgeCount:       22
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:759,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:759,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:759,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:759,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:759,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:760,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:760,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:760,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:761,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:761,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:761,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:762,2'
              BranchSideFuncs:
                - __assert_fail
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:762,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:762,2'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/libwinpr/utils/image.c:763,2'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/libwinpr/utils/image.c:763,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:763,2'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:763,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:759,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:760,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:761,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:762,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:763,2'
          Dst:             __assert_fail
    - functionName:    winpr_image_bitmap_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 383
      functionLinenumberEnd: 482
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - image
        - buffer
        - size
      BBCount:         105
      ICount:          556
      EdgeCount:       131
      CyclomaticComplexity: 28
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityEx
        - Stream_GetPosition
        - Stream_Read
        - Stream_StaticConstInit
        - WLog_Get
        - readBitmapFileHeader
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:391,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:392,3'
              BranchSideFuncs:
                - readBitmapFileHeader
                - free
                - readBitmapInfoHeader
                - Stream_GetPosition.3688
                - Stream_CheckAndLogRequiredCapacityEx
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:394,9'
              BranchSideFuncs:
                - readBitmapFileHeader
                - free
                - readBitmapInfoHeader
                - Stream_GetPosition.3688
                - Stream_CheckAndLogRequiredCapacityEx
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:395,36'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:395,61'
              BranchSideFuncs:
                - readBitmapInfoHeader
                - free
                - Stream_GetPosition.3688
                - Stream_CheckAndLogRequiredCapacityEx
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:396,3'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:395,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:396,3'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:398,10'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:398,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:398,35'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:398,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:404,2'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:400,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:400,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:400,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:400,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:400,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:400,3'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:409,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:411,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:416,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityEx
                - free
                - malloc
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:411,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:411,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:411,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:411,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:411,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:411,3'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:416,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:417,3'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:419,9'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:419,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:425,28'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:421,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:421,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:421,3'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:427,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:429,9'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:434,9'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:438,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:440,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:444,27'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:440,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:440,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:440,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:440,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:440,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:440,3'
              BranchSideFuncs:
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:449,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:450,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:451,9'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
        - Branch String:   'winpr/libwinpr/utils/image.c:450,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:450,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:450,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:450,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:450,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
            - BranchSide:      'winpr/libwinpr/utils/image.c:450,3'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
        - Branch String:   'winpr/libwinpr/utils/image.c:451,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:452,3'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:454,33'
              BranchSideFuncs:
                - malloc
                - free
                - Stream_Read.3653
                - Stream_Read.3653
        - Branch String:   'winpr/libwinpr/utils/image.c:456,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:457,3'
              BranchSideFuncs:
                - Stream_Read.3653
                - free
                - Stream_Read.3653
            - BranchSide:      'winpr/libwinpr/utils/image.c:459,7'
              BranchSideFuncs:
                - Stream_Read.3653
                - free
                - Stream_Read.3653
        - Branch String:   'winpr/libwinpr/utils/image.c:459,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:460,15'
              BranchSideFuncs:
                - free
                - Stream_Read.3653
            - BranchSide:      'winpr/libwinpr/utils/image.c:463,22'
              BranchSideFuncs:
                - free
                - Stream_Read.3653
        - Branch String:   'winpr/libwinpr/utils/image.c:465,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:0,0'
              BranchSideFuncs:
                - Stream_Read.3653
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:467,16'
              BranchSideFuncs:
                - Stream_Read.3653
                - free
        - Branch String:   'winpr/libwinpr/utils/image.c:475,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:477,8'
              BranchSideFuncs:
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:481,9'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:389,15'
          Dst:             Stream_StaticConstInit
        - Src:             'winpr/libwinpr/utils/image.c:395,7'
          Dst:             readBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:395,40'
          Dst:             readBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:400,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:400,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:400,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:406,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:411,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:411,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:411,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:416,7'
          Dst:             Stream_CheckAndLogRequiredCapacityEx
        - Src:             'winpr/libwinpr/utils/image.c:421,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:421,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:421,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:440,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:440,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:440,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:450,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:450,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:450,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:460,3'
          Dst:             Stream_Read
        - Src:             'winpr/libwinpr/utils/image.c:467,4'
          Dst:             Stream_Read
    - functionName:    readBitmapFileHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 78
      functionLinenumberEnd: 109
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bf
      BBCount:         47
      ICount:          207
      EdgeCount:       56
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_CheckAndLogRequiredCapacityWLogEx
        - Stream_CheckAndLogRequiredLengthWLogEx
        - WLog_Get
        - WLog_IsLevelActive
        - stream_read_u16_le
        - stream_read_u32_le
        - stream_read_u8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:80,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:81,9'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.3707
                - stream_read_u8.3707
                - stream_read_u32_le.3696
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:83,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.3707
                - stream_read_u8.3707
                - stream_read_u32_le.3696
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:83,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:83,13'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.3707
                - stream_read_u8.3707
                - stream_read_u32_le.3696
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:85,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:83,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:84,8'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthWLogEx
                - stream_read_u8.3707
                - stream_read_u8.3707
                - stream_read_u32_le.3696
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:85,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:83,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:85,3'
              BranchSideFuncs:
                - stream_read_u8.3707
                - stream_read_u8.3707
                - stream_read_u32_le.3696
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:87,2'
              BranchSideFuncs:
                - stream_read_u8.3707
                - stream_read_u8.3707
                - stream_read_u32_le.3696
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:94,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:96,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:101,7'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityWLogEx
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:96,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:96,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:98,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:101,29'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:101,33'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:103,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:101,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:103,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:107,9'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredCapacityWLogEx
        - Branch String:   'winpr/libwinpr/utils/image.c:103,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:103,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:105,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:81,9'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:84,8'
          Dst:             Stream_CheckAndLogRequiredLengthWLogEx
        - Src:             'winpr/libwinpr/utils/image.c:87,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/utils/image.c:88,2'
          Dst:             stream_read_u8
        - Src:             'winpr/libwinpr/utils/image.c:89,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:90,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/utils/image.c:91,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/utils/image.c:92,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:96,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:96,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:103,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:103,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:107,9'
          Dst:             Stream_CheckAndLogRequiredCapacityWLogEx
    - functionName:    readBitmapInfoHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 131
      functionLinenumberEnd: 195
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bi
        - poffset
      BBCount:         103
      ICount:          458
      EdgeCount:       120
      CyclomaticComplexity: 19
      functionsReached:
        - Stream_CheckAndLogRequiredLengthEx
        - Stream_GetPosition
        - Stream_SafeSeekEx
        - WLog_Get
        - stream_read_i32_le
        - stream_read_u16_le
        - stream_read_u32_le
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:132,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:132,13'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_GetPosition.3688
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:133,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:132,16'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:132,21'
              BranchSideFuncs:
                - Stream_CheckAndLogRequiredLengthEx
                - Stream_GetPosition.3688
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:133,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:132,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:133,3'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:135,42'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u16_le.3697
                - stream_read_u16_le.3697
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - stream_read_i32_le
                - stream_read_i32_le
                - stream_read_u32_le.3696
                - stream_read_u32_le.3696
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:148,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:148,31'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:150,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:148,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:150,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:155,9'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:150,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:150,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:150,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:150,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:150,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:150,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:156,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:159,8'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:173,11'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:176,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:159,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:161,18'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:166,8'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:162,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:163,19'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:164,33'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:166,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:168,12'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:171,4'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:176,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:176,4'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:176,4'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:176,4'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:176,4'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:176,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:180,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:182,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:186,40'
              BranchSideFuncs:
                - Stream_GetPosition.3688
                - Stream_SafeSeekEx
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:182,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:182,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:182,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:182,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:182,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:182,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:187,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:189,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:193,13'
              BranchSideFuncs:
                - Stream_SafeSeekEx
        - Branch String:   'winpr/libwinpr/utils/image.c:189,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:189,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:189,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:189,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:189,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:189,3'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:132,21'
          Dst:             Stream_CheckAndLogRequiredLengthEx
        - Src:             'winpr/libwinpr/utils/image.c:135,23'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:136,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:137,2'
          Dst:             stream_read_i32_le
        - Src:             'winpr/libwinpr/utils/image.c:138,2'
          Dst:             stream_read_i32_le
        - Src:             'winpr/libwinpr/utils/image.c:139,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/utils/image.c:140,2'
          Dst:             stream_read_u16_le
        - Src:             'winpr/libwinpr/utils/image.c:141,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:142,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:143,2'
          Dst:             stream_read_i32_le
        - Src:             'winpr/libwinpr/utils/image.c:144,2'
          Dst:             stream_read_i32_le
        - Src:             'winpr/libwinpr/utils/image.c:145,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:146,2'
          Dst:             stream_read_u32_le
        - Src:             'winpr/libwinpr/utils/image.c:150,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:150,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:150,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:176,4'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:176,4'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:176,4'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:182,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:182,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:182,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:186,21'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:189,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:189,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:189,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:194,9'
          Dst:             Stream_SafeSeekEx
    - functionName:    Stream_GetPosition
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 895
      functionLinenumberEnd: 898
      functionDepth:   0
      returnType:      size_t
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:896,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:896,3'
              BranchSideFuncs:
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs:
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:897,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:897,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:896,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:897,3'
          Dst:             __assert_fail
    - functionName:    stream_read_u32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 216
      functionLinenumberEnd: 226
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:217,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:217,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:218,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:218,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:218,3'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:220,21'
              BranchSideFuncs:
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:224,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:224,7'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:225,16'
              BranchSideFuncs:
                - Stream_Seek.3659
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:217,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:218,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:218,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:225,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_i32_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 244
      functionLinenumberEnd: 255
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          85
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:245,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:245,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:246,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:246,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:246,3'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:249,7'
              BranchSideFuncs:
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:253,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:253,7'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:254,16'
              BranchSideFuncs:
                - Stream_Seek.3659
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:245,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:246,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:246,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:254,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u16_le
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 168
      functionLinenumberEnd: 176
      functionDepth:   0
      returnType:      short
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          70
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:169,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:169,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:170,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:170,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:170,3'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:172,20'
              BranchSideFuncs:
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:174,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:174,7'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:175,16'
              BranchSideFuncs:
                - Stream_Seek.3659
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:169,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:170,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:170,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:175,4'
          Dst:             Stream_Seek
    - functionName:    stream_read_u8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 146
      functionLinenumberEnd: 153
      functionDepth:   0
      returnType:      char
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - seek
      BBCount:         12
      ICount:          59
      EdgeCount:       13
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_GetRemainingLength
        - Stream_Seek
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:147,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:147,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:148,3'
              BranchSideFuncs:
                - Stream_GetRemainingLength
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:148,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:148,3'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:150,19'
              BranchSideFuncs:
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:151,7'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:151,7'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:152,16'
              BranchSideFuncs:
                - Stream_Seek.3659
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:147,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:148,3'
          Dst:             Stream_GetRemainingLength
        - Src:             'winpr/include/winpr/stream.h:148,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:152,4'
          Dst:             Stream_Seek
    - functionName:    winpr_image_read_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 517
      functionLinenumberEnd: 573
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - image
        - buffer
        - size
      BBCount:         76
      ICount:          475
      EdgeCount:       107
      CyclomaticComplexity: 33
      functionsReached:
        - winpr_convert_from_jpeg
        - winpr_convert_from_png
        - winpr_convert_from_webp
        - winpr_image_bitmap_read_buffer
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:521,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:522,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:524,2'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
                - winpr_image_bitmap_read_buffer
        - Branch String:   'winpr/libwinpr/utils/image.c:526,22'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:526,26'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
                - winpr_image_bitmap_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:531,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
        - Branch String:   'winpr/libwinpr/utils/image.c:526,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:528,3'
              BranchSideFuncs:
                - winpr_image_bitmap_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:531,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
        - Branch String:   'winpr/libwinpr/utils/image.c:531,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:531,31'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:531,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:531,50'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:531,65'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:531,69'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:531,84'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:532,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:532,27'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:532,31'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:532,46'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:532,50'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:532,66'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:532,70'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:531,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:534,3'
              BranchSideFuncs:
                - winpr_convert_from_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
        - Branch String:   'winpr/libwinpr/utils/image.c:537,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:539,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:543,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:544,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,32'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:544,48'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,52'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:544,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:544,72'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:544,88'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:545,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:545,28'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:545,32'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:545,48'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:545,52'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:545,68'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:545,72'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:545,88'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:546,12'
              BranchSideFuncs:
                - winpr_convert_from_png
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:544,11'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:548,3'
              BranchSideFuncs:
                - winpr_convert_from_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:558,12'
              BranchSideFuncs:
                - winpr_convert_from_png
        - Branch String:   'winpr/libwinpr/utils/image.c:551,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:553,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:557,2'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:564,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:566,28'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:570,2'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:529,12'
          Dst:             winpr_image_bitmap_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:535,22'
          Dst:             winpr_convert_from_webp
        - Src:             'winpr/libwinpr/utils/image.c:549,22'
          Dst:             winpr_convert_from_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:562,22'
          Dst:             winpr_convert_from_png
    - functionName:    winpr_image_read
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 485
      functionLinenumberEnd: 514
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - filename
      BBCount:         27
      ICount:          133
      EdgeCount:       33
      CyclomaticComplexity: 8
      functionsReached:
        - WLog_Get
        - fclose
        - fread
        - fseek
        - ftello64
        - winpr_fopen
        - winpr_image_read_buffer
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:489,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:491,3'
              BranchSideFuncs:
                - fseek
                - ftello64
                - fseek
                - fclose
                - malloc
                - free
                - fread
                - winpr_image_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:495,14'
              BranchSideFuncs:
                - fseek
                - ftello64
                - fseek
                - fclose
                - malloc
                - free
                - fread
                - winpr_image_read_buffer
        - Branch String:   'winpr/libwinpr/utils/image.c:491,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:491,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:491,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:491,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:491,3'
              BranchSideFuncs:
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:491,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:499,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:501,33'
              BranchSideFuncs:
                - malloc
                - free
                - fclose
                - fread
                - winpr_image_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:512,15'
              BranchSideFuncs:
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:502,7'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:504,21'
              BranchSideFuncs:
                - fread
                - free
                - fclose
                - winpr_image_read_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:510,8'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:505,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:507,38'
              BranchSideFuncs:
                - winpr_image_read_buffer
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:509,3'
              BranchSideFuncs:
                - free
                - fclose
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:488,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:491,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:491,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:491,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:495,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:496,14'
          Dst:             ftello64
        - Src:             'winpr/libwinpr/utils/image.c:497,8'
          Dst:             fseek
        - Src:             'winpr/libwinpr/utils/image.c:504,15'
          Dst:             fread
        - Src:             'winpr/libwinpr/utils/image.c:507,14'
          Dst:             winpr_image_read_buffer
        - Src:             'winpr/libwinpr/utils/image.c:512,8'
          Dst:             fclose
    - functionName:    fseek
      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:    write_and_free
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 347
      functionLinenumberEnd: 362
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - filename
        - data
        - size
      BBCount:         8
      ICount:          66
      EdgeCount:       10
      CyclomaticComplexity: 4
      functionsReached:
        - fclose
        - fwrite
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:349,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:350,3'
              BranchSideFuncs:
                - winpr_fopen
                - free
                - fwrite
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:352,25'
              BranchSideFuncs:
                - winpr_fopen
                - free
                - fwrite
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:353,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:354,3'
              BranchSideFuncs:
                - fwrite
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:356,9'
              BranchSideFuncs:
                - fwrite
                - fclose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:352,13'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:356,13'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:357,8'
          Dst:             fclose
    - functionName:    winpr_image_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 1238
      functionLinenumberEnd: 1282
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - format
        - psize
      BBCount:         12
      ICount:          226
      EdgeCount:       23
      CyclomaticComplexity: 13
      functionsReached:
        - __assert_fail
        - winpr_bitmap_write_buffer
        - winpr_convert_to_jpeg
        - winpr_convert_to_png
        - winpr_convert_to_webp
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:1239,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1239,2'
              BranchSideFuncs:
                - winpr_convert_to_png
                - winpr_convert_to_jpeg
                - winpr_convert_to_webp
                - winpr_bitmap_write_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:1240,10'
              BranchSideFuncs:
                - winpr_convert_to_png
                - winpr_convert_to_jpeg
                - winpr_convert_to_webp
                - winpr_bitmap_write_buffer
        - Branch String:   'winpr/libwinpr/utils/image.c:1240,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:1244,11'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
            - BranchSide:      'winpr/libwinpr/utils/image.c:1253,11'
              BranchSideFuncs:
                - winpr_convert_to_webp
            - BranchSide:      'winpr/libwinpr/utils/image.c:1262,11'
              BranchSideFuncs:
                - winpr_convert_to_jpeg
            - BranchSide:      'winpr/libwinpr/utils/image.c:1271,11'
              BranchSideFuncs:
                - winpr_convert_to_png
            - BranchSide:      'winpr/libwinpr/utils/image.c:1279,5'
              BranchSideFuncs: []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:1239,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:1246,17'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:1255,17'
          Dst:             winpr_convert_to_webp
        - Src:             'winpr/libwinpr/utils/image.c:1264,17'
          Dst:             winpr_convert_to_jpeg
        - Src:             'winpr/libwinpr/utils/image.c:1273,17'
          Dst:             winpr_convert_to_png
    - functionName:    winpr_bitmap_write_buffer
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 272
      functionLinenumberEnd: 304
      functionDepth:   0
      returnType:      'N/A'
      argCount:        7
      argTypes:
        - 'N/A'
        - size_t
        - int
        - int
        - int
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - data
        - size
        - width
        - height
        - stride
        - bpp
        - pSize
      BBCount:         23
      ICount:          182
      EdgeCount:       29
      CyclomaticComplexity: 8
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_GetPosition
        - Stream_New
        - Stream_Write
        - __assert_fail
        - winpr_bitmap_construct_header
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:273,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:273,2'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
            - BranchSide:      'winpr/libwinpr/utils/image.c:273,2'
              BranchSideFuncs:
                - __assert_fail
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
        - Branch String:   'winpr/libwinpr/utils/image.c:273,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:273,2'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
            - BranchSide:      'winpr/libwinpr/utils/image.c:275,8'
              BranchSideFuncs:
                - Stream_New
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
        - Branch String:   'winpr/libwinpr/utils/image.c:279,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:280,12'
              BranchSideFuncs:
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
            - BranchSide:      'winpr/libwinpr/utils/image.c:282,51'
              BranchSideFuncs:
                - winpr_bitmap_construct_header
                - Stream_Free
                - free
                - Stream_EnsureRemainingCapacity
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
        - Branch String:   'winpr/libwinpr/utils/image.c:283,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:284,3'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
            - BranchSide:      'winpr/libwinpr/utils/image.c:285,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
        - Branch String:   'winpr/libwinpr/utils/image.c:285,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:286,3'
              BranchSideFuncs:
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
            - BranchSide:      'winpr/libwinpr/utils/image.c:287,15'
              BranchSideFuncs:
                - Stream_Write.3663
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - free
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Write.3663
        - Branch String:   'winpr/libwinpr/utils/image.c:289,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:290,3'
              BranchSideFuncs:
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Free
                - free
                - Stream_Write.3663
            - BranchSide:      'winpr/libwinpr/utils/image.c:292,14'
              BranchSideFuncs:
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Free
                - free
                - Stream_Write.3663
        - Branch String:   'winpr/libwinpr/utils/image.c:292,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:294,23'
              BranchSideFuncs:
                - Stream_Write.3663
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Free
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:299,25'
              BranchSideFuncs:
                - Stream_Buffer.3715
                - Stream_GetPosition.3688
                - Stream_Free
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:273,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:277,15'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:282,21'
          Dst:             winpr_bitmap_construct_header
        - Src:             'winpr/libwinpr/utils/image.c:285,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:287,2'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:289,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:296,3'
          Dst:             Stream_Write
        - Src:             'winpr/libwinpr/utils/image.c:299,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:300,11'
          Dst:             Stream_GetPosition
        - Src:             'winpr/libwinpr/utils/image.c:302,2'
          Dst:             Stream_Free
    - functionName:    winpr_bitmap_construct_header
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 198
      functionLinenumberEnd: 264
      functionDepth:   0
      returnType:      'N/A'
      argCount:        3
      argTypes:
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - width
        - height
        - bpp
      BBCount:         32
      ICount:          253
      EdgeCount:       41
      CyclomaticComplexity: 11
      functionsReached:
        - Stream_Buffer
        - Stream_EnsureRemainingCapacity
        - Stream_Free
        - Stream_New
        - Stream_Zero
        - writeBitmapFileHeader
        - writeBitmapInfoHeader
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:206,26'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:206,30'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:207,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:206,50'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:206,54'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:207,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:206,72'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:206,76'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:207,3'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:206,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:207,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/libwinpr/utils/image.c:209,6'
              BranchSideFuncs:
                - Stream_New
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
        - Branch String:   'winpr/libwinpr/utils/image.c:210,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:211,3'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:213,5'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
        - Branch String:   'winpr/libwinpr/utils/image.c:232,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:235,11'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:244,11'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:247,4'
              BranchSideFuncs: []
        - Branch String:   'winpr/libwinpr/utils/image.c:235,8'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:237,21'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:242,4'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
        - Branch String:   'winpr/libwinpr/utils/image.c:238,9'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:239,22'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:240,33'
              BranchSideFuncs:
                - writeBitmapFileHeader
                - Stream_Free
                - writeBitmapInfoHeader
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
        - Branch String:   'winpr/libwinpr/utils/image.c:250,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:251,3'
              BranchSideFuncs:
                - writeBitmapInfoHeader
                - Stream_Free
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:253,29'
              BranchSideFuncs:
                - writeBitmapInfoHeader
                - Stream_Free
                - Stream_EnsureRemainingCapacity
                - Stream_Zero.3717
                - Stream_Buffer.3715
        - Branch String:   'winpr/libwinpr/utils/image.c:253,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:254,3'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - Stream_Zero.3717
                - Stream_Buffer.3715
            - BranchSide:      'winpr/libwinpr/utils/image.c:256,38'
              BranchSideFuncs:
                - Stream_EnsureRemainingCapacity
                - Stream_Free
                - Stream_Zero.3717
                - Stream_Buffer.3715
        - Branch String:   'winpr/libwinpr/utils/image.c:256,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:257,3'
              BranchSideFuncs:
                - Stream_Zero.3717
                - Stream_Buffer.3715
                - Stream_Free
            - BranchSide:      'winpr/libwinpr/utils/image.c:259,14'
              BranchSideFuncs:
                - Stream_Zero.3717
                - Stream_Buffer.3715
                - Stream_Free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:209,6'
          Dst:             Stream_New
        - Src:             'winpr/libwinpr/utils/image.c:250,7'
          Dst:             writeBitmapFileHeader
        - Src:             'winpr/libwinpr/utils/image.c:253,7'
          Dst:             writeBitmapInfoHeader
        - Src:             'winpr/libwinpr/utils/image.c:256,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:259,2'
          Dst:             Stream_Zero
        - Src:             'winpr/libwinpr/utils/image.c:260,11'
          Dst:             Stream_Buffer
        - Src:             'winpr/libwinpr/utils/image.c:262,2'
          Dst:             Stream_Free
    - functionName:    Stream_Buffer
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 840
      functionLinenumberEnd: 842
      functionDepth:   0
      returnType:      'N/A'
      argCount:        1
      argTypes:
        - 'N/A'
      constantsTouched: []
      argNames:
        - _s
      BBCount:         6
      ICount:          29
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:841,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:841,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:841,3'
          Dst:             __assert_fail
    - functionName:    writeBitmapFileHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 64
      functionLinenumberEnd: 75
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bf
      BBCount:         6
      ICount:          66
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_UINT16
        - Stream_Write_UINT32
        - Stream_Write_UINT8
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:65,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:66,3'
              BranchSideFuncs:
                - Stream_Write_UINT8.3727
                - Stream_Write_UINT8.3727
                - Stream_Write_UINT32.3720
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT32.3720
            - BranchSide:      'winpr/libwinpr/utils/image.c:68,21'
              BranchSideFuncs:
                - Stream_Write_UINT8.3727
                - Stream_Write_UINT8.3727
                - Stream_Write_UINT32.3720
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT32.3720
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:65,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:68,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/image.c:69,2'
          Dst:             Stream_Write_UINT8
        - Src:             'winpr/libwinpr/utils/image.c:70,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/image.c:71,2'
          Dst:             Stream_Write_UINT16
        - Src:             'winpr/libwinpr/utils/image.c:72,2'
          Dst:             Stream_Write_UINT16
        - Src:             'winpr/libwinpr/utils/image.c:73,2'
          Dst:             Stream_Write_UINT32
    - functionName:    writeBitmapInfoHeader
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 112
      functionLinenumberEnd: 128
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - s
        - bi
      BBCount:         6
      ICount:          89
      EdgeCount:       7
      CyclomaticComplexity: 3
      functionsReached:
        - Stream_EnsureRemainingCapacity
        - Stream_Write_INT32
        - Stream_Write_UINT16
        - Stream_Write_UINT32
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:113,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:114,3'
              BranchSideFuncs:
                - Stream_Write_UINT32.3720
                - Stream_Write_INT32
                - Stream_Write_INT32
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT32.3720
                - Stream_Write_UINT32.3720
                - Stream_Write_INT32
                - Stream_Write_INT32
                - Stream_Write_UINT32.3720
                - Stream_Write_UINT32.3720
            - BranchSide:      'winpr/libwinpr/utils/image.c:116,22'
              BranchSideFuncs:
                - Stream_Write_UINT32.3720
                - Stream_Write_INT32
                - Stream_Write_INT32
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT16.3721
                - Stream_Write_UINT32.3720
                - Stream_Write_UINT32.3720
                - Stream_Write_INT32
                - Stream_Write_INT32
                - Stream_Write_UINT32.3720
                - Stream_Write_UINT32.3720
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:113,7'
          Dst:             Stream_EnsureRemainingCapacity
        - Src:             'winpr/libwinpr/utils/image.c:116,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/image.c:117,2'
          Dst:             Stream_Write_INT32
        - Src:             'winpr/libwinpr/utils/image.c:118,2'
          Dst:             Stream_Write_INT32
        - Src:             'winpr/libwinpr/utils/image.c:119,2'
          Dst:             Stream_Write_UINT16
        - Src:             'winpr/libwinpr/utils/image.c:120,2'
          Dst:             Stream_Write_UINT16
        - Src:             'winpr/libwinpr/utils/image.c:121,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/image.c:122,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/image.c:123,2'
          Dst:             Stream_Write_INT32
        - Src:             'winpr/libwinpr/utils/image.c:124,2'
          Dst:             Stream_Write_INT32
        - Src:             'winpr/libwinpr/utils/image.c:125,2'
          Dst:             Stream_Write_UINT32
        - Src:             'winpr/libwinpr/utils/image.c:126,2'
          Dst:             Stream_Write_UINT32
    - functionName:    Stream_Zero
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 812
      functionLinenumberEnd: 817
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - size_t
      constantsTouched: []
      argNames:
        - _s
        - _n
      BBCount:         9
      ICount:          49
      EdgeCount:       9
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - Stream_Seek
        - __assert_fail
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:813,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:813,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
                - Stream_Seek.3659
        - Branch String:   'winpr/include/winpr/stream.h:814,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - Stream_Seek.3659
            - BranchSide:      'winpr/include/winpr/stream.h:814,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:813,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:814,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:814,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:816,3'
          Dst:             Stream_Seek
    - functionName:    Stream_Write_UINT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 734
      functionLinenumberEnd: 742
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          90
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    7
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:735,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:735,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:736,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:736,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:736,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:737,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:737,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:735,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:736,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:737,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_INT32
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 723
      functionLinenumberEnd: 731
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - int
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          90
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:724,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:724,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:725,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:725,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:725,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:726,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:726,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:726,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:726,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:724,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:725,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:726,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:726,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UINT16
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 694
      functionLinenumberEnd: 700
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - short
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          72
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    4
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:695,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:695,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:696,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:696,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:697,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:697,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:695,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:696,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:697,3'
          Dst:             __assert_fail
    - functionName:    Stream_Write_UINT8
      functionSourceFile: '/src/FreeRDP/winpr/include/winpr/stream.h'
      linkageType:     InternalLinkage
      functionLinenumber: 677
      functionLinenumberEnd: 682
      functionDepth:   0
      returnType:      void
      argCount:        2
      argTypes:
        - 'N/A'
        - char
      constantsTouched: []
      argNames:
        - _s
        - _v
      BBCount:         12
      ICount:          58
      EdgeCount:       12
      CyclomaticComplexity: 2
      functionsReached:
        - Stream_GetRemainingCapacity
        - __assert_fail
      functionUses:    2
      BranchProfiles:
        - Branch String:   'winpr/include/winpr/stream.h:678,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:678,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:679,3'
              BranchSideFuncs:
                - __assert_fail
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:679,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:679,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs:
                - Stream_GetRemainingCapacity
                - __assert_fail
        - Branch String:   'winpr/include/winpr/stream.h:680,3'
          Branch Sides:
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs: []
            - BranchSide:      'winpr/include/winpr/stream.h:680,3'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/include/winpr/stream.h:678,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:679,3'
          Dst:             __assert_fail
        - Src:             'winpr/include/winpr/stream.h:680,3'
          Dst:             Stream_GetRemainingCapacity
        - Src:             'winpr/include/winpr/stream.h:680,3'
          Dst:             __assert_fail
    - functionName:    winpr_image_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 372
      functionLinenumberEnd: 380
      functionDepth:   0
      returnType:      int
      argCount:        3
      argTypes:
        - 'N/A'
        - int
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - format
        - filename
      BBCount:         9
      ICount:          57
      EdgeCount:       10
      CyclomaticComplexity: 3
      functionsReached:
        - __assert_fail
        - winpr_image_write_buffer
        - write_and_free
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:373,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:373,2'
              BranchSideFuncs:
                - winpr_image_write_buffer
                - write_and_free
            - BranchSide:      'winpr/libwinpr/utils/image.c:375,9'
              BranchSideFuncs:
                - winpr_image_write_buffer
                - write_and_free
        - Branch String:   'winpr/libwinpr/utils/image.c:377,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:378,3'
              BranchSideFuncs:
                - write_and_free
            - BranchSide:      'winpr/libwinpr/utils/image.c:379,24'
              BranchSideFuncs:
                - write_and_free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:373,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:376,15'
          Dst:             winpr_image_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:379,9'
          Dst:             write_and_free
    - functionName:    winpr_image_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 366
      functionLinenumberEnd: 368
      functionDepth:   0
      returnType:      int
      argCount:        2
      argTypes:
        - 'N/A'
        - 'N/A'
      constantsTouched: []
      argNames:
        - image
        - filename
      BBCount:         6
      ICount:          35
      EdgeCount:       6
      CyclomaticComplexity: 2
      functionsReached:
        - __assert_fail
        - winpr_image_write_ex
      functionUses:    0
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:367,2'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:367,2'
              BranchSideFuncs:
                - winpr_image_write_ex
            - BranchSide:      'winpr/libwinpr/utils/image.c:367,2'
              BranchSideFuncs:
                - __assert_fail
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:367,2'
          Dst:             __assert_fail
        - Src:             'winpr/libwinpr/utils/image.c:368,9'
          Dst:             winpr_image_write_ex
    - functionName:    winpr_bitmap_write_ex
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 315
      functionLinenumberEnd: 343
      functionDepth:   0
      returnType:      int
      argCount:        6
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - filename
        - data
        - stride
        - width
        - height
        - bpp
      BBCount:         28
      ICount:          167
      EdgeCount:       35
      CyclomaticComplexity: 9
      functionsReached:
        - WLog_Get
        - fclose
        - fwrite
        - winpr_bitmap_write_buffer
        - winpr_fopen
      functionUses:    1
      BranchProfiles:
        - Branch String:   'winpr/libwinpr/utils/image.c:320,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:321,12'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
                - free
                - fclose
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/image.c:323,9'
              BranchSideFuncs:
                - winpr_bitmap_write_buffer
                - free
                - fclose
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - WLog_PrintMessage
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/image.c:326,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:327,3'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - WLog_PrintMessage
                - fwrite
            - BranchSide:      'winpr/libwinpr/utils/image.c:329,19'
              BranchSideFuncs:
                - winpr_fopen
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - WLog_PrintMessage
                - fwrite
        - Branch String:   'winpr/libwinpr/utils/image.c:330,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:332,3'
              BranchSideFuncs:
                - fwrite
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:336,13'
              BranchSideFuncs:
                - fwrite
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:332,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:332,3'
              BranchSideFuncs:
                - WLog_IsLevelActive
                - free
                - fclose
                - WLog_PrintMessage
            - BranchSide:      'winpr/libwinpr/utils/image.c:332,3'
              BranchSideFuncs:
                - WLog_Get
                - WLog_IsLevelActive
                - free
                - fclose
                - WLog_PrintMessage
        - Branch String:   'winpr/libwinpr/utils/image.c:332,3'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:332,3'
              BranchSideFuncs:
                - WLog_PrintMessage
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:332,3'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:336,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:336,41'
              BranchSideFuncs:
                - free
                - fclose
            - BranchSide:      'winpr/libwinpr/utils/image.c:337,3'
              BranchSideFuncs:
                - free
                - fclose
        - Branch String:   'winpr/libwinpr/utils/image.c:340,6'
          Branch Sides:
            - BranchSide:      'winpr/libwinpr/utils/image.c:340,6'
              BranchSideFuncs:
                - fclose
                - free
            - BranchSide:      'winpr/libwinpr/utils/image.c:341,16'
              BranchSideFuncs:
                - fclose
                - free
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:325,18'
          Dst:             winpr_bitmap_write_buffer
        - Src:             'winpr/libwinpr/utils/image.c:329,7'
          Dst:             winpr_fopen
        - Src:             'winpr/libwinpr/utils/image.c:332,3'
          Dst:             WLog_Get
        - Src:             'winpr/libwinpr/utils/image.c:332,3'
          Dst:             WLog_IsLevelActive
        - Src:             'winpr/libwinpr/utils/image.c:332,3'
          Dst:             WLog_PrintMessage
        - Src:             'winpr/libwinpr/utils/image.c:336,6'
          Dst:             fwrite
        - Src:             'winpr/libwinpr/utils/image.c:341,9'
          Dst:             fclose
    - functionName:    winpr_bitmap_write
      functionSourceFile: '/src/FreeRDP/winpr/libwinpr/utils/image.c'
      linkageType:     InternalLinkage
      functionLinenumber: 309
      functionLinenumberEnd: 310
      functionDepth:   0
      returnType:      int
      argCount:        5
      argTypes:
        - 'N/A'
        - 'N/A'
        - size_t
        - size_t
        - size_t
      constantsTouched: []
      argNames:
        - filename
        - data
        - width
        - height
        - bpp
      BBCount:         3
      ICount:          32
      EdgeCount:       3
      CyclomaticComplexity: 2
      functionsReached:
        - winpr_bitmap_write_ex
      functionUses:    1
      BranchProfiles:  []
      Callsites:
        - Src:             'winpr/libwinpr/utils/image.c:310,9'
          Dst:             winpr_bitmap_write_ex
...
